c# - TableLayoutPanel GetCellPosition 和 GetPositionFromControl,它们有何不同?

标签 c# .net vb.net winforms tablelayoutpanel

这似乎是一个老生常谈的问题,但我发现有关这些方法的 Microsoft 文档缺乏任何细节。

TablelLayoutPanel.GetCellPosition(Control control) 和有什么区别和TableLayoutPanel.GetPositionFromControl(Control control)

我正在使用 .NET Framework 4

最佳答案

GetCellPosition 获取控件的声明位置,而 GetPositionFromControl 获取 TableLayoutPanel 为控件确定的实际位置。这些在大多数情况下都是相同的。以编程方式将多个控件设置到同一单元格(或使用 ColumnSpanRowSpan 重叠单元格),并查看结果有何不同。

将 TableLayoutPanel 添加到 Form 并复制以下代码。运行它并单击标签以查看差异。

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Index As Integer = 0 To 4
            Dim Control As New Label
            Control.Text = String.Format("Control {0}", Index)
            AddHandler Control.Click, AddressOf Control_Click
            TableLayoutPanel1.Controls.Add(Control, 0, 0)
        Next
    End Sub

    Private Sub Control_Click(sender As Object, e As EventArgs)
        Dim Pos1 As TableLayoutPanelCellPosition = TableLayoutPanel1.GetPositionFromControl(sender)
        Dim Pos2 As TableLayoutPanelCellPosition = TableLayoutPanel1.GetCellPosition(sender)
        Dim Text As String = String.Format("GetPositionFromControl = {0},{1}" & vbCrLf & "GetCellPosition = {2},{3}", Pos1.Column, Pos1.Row, Pos2.Column, Pos2.Row)
        MessageBox.Show(Text)
    End Sub
End Class

关于c# - TableLayoutPanel GetCellPosition 和 GetPositionFromControl,它们有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142220/

相关文章:

c# - 来自 c# DateTime 的 Javascript 日期

c# - 未使用 .net S3 获得客户端加密

c# - 从网络服务写入文件

.net - 限制数字字符数的正则表达式是什么?

c# - 如何将 Javascript 日期时间转换为 C# 日期时间?

vb.net - Visual Studio 2008 窗口窗体打开后立即关闭

c# - 反向多对多 Dictionary<key, List<value>>

c# - 在 C# 中设置在执行完成后仍然存在的环境变量

mysql - 如何在具有多个条件的mysql数据库中选择多个值

vb.net - 我可以将 Excel 应用程序对象设置为指向已打开的 Excel 实例吗?