簡體   English   中英

如何從VB.net中以編程方式創建的datagridview訪問單元格?

[英]How to access cells from programmatically created datagridview in VB.net?

當在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

這就是我創建此控件的方式。 也許我以錯誤的方式添加了控件? 我願意采取更好的方法。

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

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

這是在Controls集合中找到第一個Control,將其強制轉換為DataGridView類型,然后將其分配給變量dgv。 您可以操縱dgv。 在這種情況下,我將一些文本放在第一行的第一個單元格中。

您可以向控件集合詢問datagridview的實例

Dim MyDgv As DataGridView = Controls.Cast(Of DataGridView).First(Function(dgv) dgv.Name = "NewDGV")

然后使用“ MyDGV”屬性,方法和/或事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM