我想在表单中添加一个表,该表包含 2 列和 3 行。这 3 行是名称、年龄和地点。在运行时这个表中,我想更新第二列中尊重行的值。我想添加这样的表
例如,在上图中,Name 是 column1 中的表行项目之一,column2 中的第一行包含 Name 的值。
我该怎么做?
创建某种容器类(即某种集合)来存储您的键值对,并DataGrid
在运行时将它们绑定到 a。
Quick'n'dirty 示例:
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