C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

TableLayoutPanelでセル座標を取得する方法 /近藤 (19/11/07(Thu) 11:30) #92909
Re[1]: TableLayoutPanelでセル座標を取得する方法 /ぼーちゃん (19/11/12(Tue) 13:50) #92979


親記事 / ▼[ 92979 ]
■92909 / 親階層)  TableLayoutPanelでセル座標を取得する方法
□投稿者/ 近藤 (1回)-(2019/11/07(Thu) 11:30:52)

分類:[.NET 全般] 

VB.NETに関する質問です。


TableLayoutPanelである特定のセル(例えば2行2列目のセル)の
座標を取得したいのですが
どのようにすれば良いですか?

TableLayoutPanel26.Boundsで全体の座標を取得した後に、

GetRowHeights(1)やGetColumnWidths(0)を
足し算していくしかないので
一発で取得できる方法があれば教えてください。

セルの位置1,2や1,3などを取得する方法は見つかったのですが、
座標を取得する方法は分かりませんでした

どなたか教えてください。


[ □ Tree ] 返信 編集キー/

▲[ 92909 ] / 返信無し
■92979 / 1階層)  Re[1]: TableLayoutPanelでセル座標を取得する方法
□投稿者/ ぼーちゃん (14回)-(2019/11/12(Tue) 13:50:11)
ズバリ1発で取れるプロパティなどは存じ上げないのですが、
セル描写のタイミングで座標を取ることはよくやります。
CellPaintイベントハンドラ内でe.CellBoundsでセル領域のRetangleが取れます。

任意のタイミングで取得出来ないので微妙かもですが・・・

Private Sub TableLayoutPanel26_CellPaint(sender As Object, e As TableLayoutCellPaintEventArgs) Handles TableLayoutPanel26.CellPaint
    'C1R1の座標を表示
    If e.Column = 1 And e.Row = 1 Then
        Dim cPoint = Me.PointToClient(TableLayoutPanel26.PointToScreen(e.CellBounds.Location))
        Console.WriteLine("X: {0}, Y: {1}", cPoint.X, cPoint.Y)
    End If
End Sub

[ 親 92909 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -