在VB.net中创建datagridview时,我无法从除创建它的Sub以外的任何位置进入单元格。 我尝试将代码放置在Form_Load中,并尝试将Sub Public设置为Sub Public。 我使用Controls.Find查找数据网格视图,但无法访问任何行或单元格。我可以创建文本框和标签控件,并从任何地方访问其文本内容,但使用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
这就是我创建此控件的方式。也许我以错误的方式添加了控件?我愿意采取更好的方法。
答案 0 :(得分:1)
Dim dgv As DataGridView = CType(Controls("NewDGV"), DataGridView)
dgv.Rows(0).Cells(0).Value = "I found you!"
这是在Controls集合中找到第一个Control,将其强制转换为DataGridView类型,然后将其分配给变量dgv。您可以操纵dgv。在这种情况下,我将一些文本放在第一行的第一个单元格中。
答案 1 :(得分:0)
您可以向控件集合询问datagridview的实例
Dim MyDgv As DataGridView = Controls.Cast(Of DataGridView).First(Function(dgv) dgv.Name = "NewDGV")
然后使用“ MyDGV”属性,方法和/或事件