c# - 如何在运行时在 vb.net 窗口窗体中更改 TableLayoutPanel 控件中控件的位置

标签 c# vb.net

我在 Windows 窗体中有一个 TableLayoutPanel 控件。现在我在 TableLayoutPanel 中有 4 个面板控件,分别是单元格 (0,0) 中的面板 1、单元格 (0,1) 中的面板 2、单元格 (1,0) 中的面板 3 和单元格 (1,1) 中的面板 4。

现在我想把 Panel4 移到 Panel1 并隐藏 Panel1。如何做到这一点?

最佳答案

TableLayoutPanel 支持 GetCellPositionSetCellPosition与子控件位置交互的方法。

下面的方法可以用来交换两个子控件的位置。

Private Shared Sub SwapPosition(c1 As Control, c2 As Control)
    Dim tlp As TableLayoutPanel = TryCast(c1.Parent, TableLayoutPanel)
    If tlp Is c2.Parent AndAlso tlp IsNot Nothing Then
        Dim posC1 As TableLayoutPanelCellPosition = tlp.GetCellPosition(c1)
        Dim posC2 As TableLayoutPanelCellPosition = tlp.GetCellPosition(c2)

        tlp.SetCellPosition(c2, posC1)
        tlp.SetCellPosition(c1, posC2)
    End If
End Sub

就隐藏子控件而言,要么将其从 TableLayoutPanel 的控件集合中移除,要么调用控件的 Hide 方法。

关于c# - 如何在运行时在 vb.net 窗口窗体中更改 TableLayoutPanel 控件中控件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460410/

相关文章:

c# - 创建 FileTable 或 FileStream SQL 类型 在 C# 中使用 Stream

c# - 堆内存问题

c# - 需要有关 Enumerable.Aggregate 函数的更多详细信息

vb.net - Vb.net 中的 <Something>_ 是什么

vb.net - 使用 VB.NET 从 API 读取

.net - Winforms WebBrowser 告诉何时完成刷新

vb.net - 打印到 XPS,无需“另存为”对话框

c# - Xamarin Studio 如何编写命名空间

c# - 在 .NET Core 2 中创建 HttpClient 的最佳实践

.net - String.Format 带符号小数,固定小数位数,无小数分隔符