So-net無料ブログ作成
検索選択

TableLayoutPanelにプログラムで列(Column)を追加 [VB.NET]

横に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

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。