フォームにテーブルを追加したいのですが、テーブルには 2 つの列と 3 つの行が含まれています。3 つの行は名前、年齢、場所です。このようにテーブルを追加したい
たとえば、上の画像では、名前は列1のテーブル行項目の1つであり、列2の最初の行には名前の値が含まれています。
どうすればできますか?
キーと値のペアを格納するある種のコンテナ クラス (つまり、ある種のコレクション) を作成し、DataGrid
実行時にそれらを にバインドします。
簡単な例:
Class Container
Inherits BindingList(Of Value)
Class Value
Public Property Key As String
Public Property Value As Object
End Class
Public Sub New()
Add(New Value With {.Key = "Name"})
Add(New Value With {.Key = "Age"})
Add(New Value With {.Key = "Place"})
End Sub
Default Public Overloads Property Item(ByVal key As String) As Object
Get
Return Me.FirstOrDefault(Function(v) v.Key = key)
End Get
Set(ByVal value As Object)
Dim v = Me.FirstOrDefault(Function(e) e.Key = key)
If v Is Nothing Then
Add(New Value With {.Key = key, .Value = value})
Else
v.Value = value
End If
End Set
End Property
End Class
あなたのForm
:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim grd = New DataGrid With {.Dock = DockStyle.Fill}
Controls.Add(grd)
Dim container = New Container()
grd.DataSource = container
container("Age") = 12
container("Place") = "Somewhere"
End Sub
次に、もちろん DataGrid の外観を調整する必要があります。それはあなた次第です。
このように、グリッドはオブジェクトにバインドされ、container
値を簡単に読み取ったり変更したりできます。
これらのリンクを試してみてください
http://www.w3.org/TR/html4/struct/tables.html#h-11.3.2