2

これは陳腐な質問に思えるかもしれませんが、これらの方法に関するマイクロソフトのドキュメントには詳細が欠けていることがわかりました。

TablelLayoutPanel.GetCellPosition(Control control)とはどう違いTableLayoutPanel.GetPositionFromControl(Control control)ますか?

.NET Framework 4 を使用しています

4

1 に答える 1

4

GetCellPositionは、コントロールの宣言された位置を取得します。ここで、 asは、コントロールに対して決定しGetPositionFromControlた実際の位置を取得します。TableLayoutPanelこれらはほとんどの場合同じです。ColumnSpanプログラムで複数のコントロールを同じセル (またはまたは, で重なっているセルRowSpan) に設定し、結果がどのように異なるかを確認します。

TableLayoutPanel をフォームに追加し、次のコードをコピーします。それを実行し、ラベルをクリックして違いを確認します。

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
于 2011-08-22T01:34:30.473 に答える