首页 > 解决方案 > 如何从 VB.net 中以编程方式创建的 datagridview 访问单元格?

问题描述

在 VB.net 中创建 datagridview 时,除了制作它的 Sub 之外,我无法从任何地方获取单元格。我尝试将代码放在 Form_Load 中并尝试使 Sub Public。我使用 Controls.Find,它可以找到 datagridview,但我无法访问任何行或单元格。我可以创建文本框和标签控件并从任何地方访问它们的文本内容,但对于 datagridview 则不然。这对我来说很奇怪。在 Visual Studio 2017 中使用和学习 Visual Basic,以便在我自己的家庭企业实用程序中使用。

Dim dgv As New DataGridView
dgv.Location = New Point(2, 200)
dgv.Size = New Size(300, 50)
dgv.Name = "NewDGV"
Dim ColumnTitles() As String = {"ProdId", "Price"}
Dim ColumnWidths() As Integer = {50, 50) 
For i = 0 To UBound(ColumnTitles)
    Dim col As New DataGridViewTextBoxColumn
    col.DataPropertyName = ColumnTitles(i)
    col.HeaderText = ColumnTitles(i)
    col.Name = ColumnTitles(i)
    col.Width = ColumnWidths(i)
    dgv.Columns.Add(col)
Next
Controls.Add(dgv)
‘the following sees the datagridview just fine 
‘within the same sub   
Dim x = dgv.Rows(0).Cells(0).Value

这就是我创建此控件的方式。也许我以错误的方式添加到控件?我愿意接受更好的方法来做到这一点。

标签: vb.netdatagridview

解决方案


    Dim dgv As DataGridView = CType(Controls("NewDGV"), DataGridView)

    dgv.Rows(0).Cells(0).Value = "I found you!"

这样做是在 Controls 集合中找到第一个 Control,将其强制转换为 DataGridView 类型,并将其分配给变量 dgv。你可以操纵 dgv。在这种情况下,我在第一行的第一个单元格中放置了一些文本。


推荐阅读