TableLayoutPanelにプログラムで列(Column)を追加
横にLabelを並べてチェック用の数値を表示したい。
チェック項目は設定で変更される。
Formのサイズを取得して、Labelのサイズを調整しても良かったけどTableLayoutPanelを使ってみた。
参考にしたHP
http://dobon.net/vb/dotnet/control/tlrowstyles.html
http://dobon.net/vb/dotnet/control/tlrowinsert.html
FormにTableLayoutPanelを配置して横幅いっぱいまで広げる。
Labelは7個配置したい。
Dim intControllerStatusCount As Integer = 7 '動的にLabelを作成する Dim lblControllerStatus() As Label Array.Resize(Of Label)(lblControllerStatus, intControllerStatusCount) 'TableLayoutPanelの行列を全削除してから、1行を追加 'デザイナで行列の追加削除を繰り返していると残ったりしたので。 tlpControllerStatus.ColumnStyles.Clear() tlpControllerStatus.RowStyles.Clear() tlpControllerStatus.ColumnCount = intControllerStatusCount tlpControllerStatus.RowCount = 1 tlpControllerStatus.RowStyles.Add(New RowStyle(SizeType.Percent, 100)) Dim i As Integer For i = 0 To intControllerStatusCount - 1 'Labelの初期設定、MarginをAll=0にしないと綺麗に並ばない lblControllerStatus(i) = New Label lblControllerStatus(i).Dock = DockStyle.Fill lblControllerStatus(i).BorderStyle = BorderStyle.Fixed3D lblControllerStatus(i).Margin = New Padding(0) '同じサイズで配置する tlpControllerStatus.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100)) tlpControllerStatus.Controls.Add(lblControllerStatus(i), i, 0) Next '動的に作成したLabelにテキストを書くと画面に反映されたのでOK For i = 0 To lblControllerStatus.Length - 1 lblControllerStatus(i).Text = i.ToString() Next