C# 如何向窗体中添加表控件?

C# 如何向窗体中添加表控件?,c#,vb.net,c#-4.0,c#-3.0,C#,Vb.net,C# 4.0,C# 3.0,我想向表单中添加一个表,该表包含2列和3行。这3行是名称、年龄和地点。在运行时,我想在该表的第2列中更新相关行的值。 我想添加这样的表 例如,在上面的图像中,Name是第1列中的表行项目之一,第2列中的第一行包含Name的值 我该怎么做呢?试试这些链接这些可能会有帮助 创建某种容器类(即某种集合),用于存储键值对,并在运行时将它们绑定到DataGrid Quick'n'dirty示例: Class Container Inherits BindingList(Of Value)

我想向表单中添加一个表,该表包含2列和3行。这3行是名称、年龄和地点。在运行时,我想在该表的第2列中更新相关行的值。 我想添加这样的表

例如,在上面的图像中,Name是第1列中的表行项目之一,第2列中的第一行包含Name的值


我该怎么做呢?

试试这些链接这些可能会有帮助


创建某种容器类(即某种集合),用于存储键值对,并在运行时将它们绑定到
DataGrid


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
在您的
表格中

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的外观当然,这取决于您


通过这种方式,网格被绑定到
容器
对象,您可以轻松地读取/更改值。

我尝试了GridView。但是在设计部分的GridView中,我们只能添加列而不是行。。这不受标准
DataGrid
或任何其他标准WinForm控件的支持。但是您可以将
数据网格
子类化,在构造函数中将该网格绑定到数据源,并创建一个适当的设计组件,该组件将允许您向该数据源添加元素,但这超出了这个问题/答案的范围。