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

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

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

TableLayoutPanelでセル座標を取得する方法

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■92909 / inTopicNo.1)  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などを取得する方法は見つかったのですが、
座標を取得する方法は分かりませんでした

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


引用返信 編集キー/
■92979 / inTopicNo.2)  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

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ