获取表单中存在的datagridview的名称

时间:2016-12-23 10:32:44

标签: vb.net datagridview

如何查看表单上DataGridViews的号码,然后在VB.NET中显示其姓名?

我试过这个:

For Each dgv As DataGridView In Me.Controls
        MsgBox(dgv.Name)
Next

但我的猜测Me.Controls除了DataGridView之外还包含其他所有表单控件?

3 个答案:

答案 0 :(得分:1)

For Each _control In Me.Controls
   If TypeOf _control Is DataGridView Then
      MsgBox(_control.Name)
   End If
Next

答案 1 :(得分:1)

我知道这个问题是很久以前发布的。在@AadityaDengle发布的答案中,您将获得DataGridView控件放置在表单中,但是,如果DataGridView嵌套在其他控件中(例如PanelTableLayoutPanel,{{ 1}},...)找不到它。

您必须使用“递归搜索”方式在所有控件中进行搜索。下面是示例:

GroupBox

答案 2 :(得分:0)

即使@AadityaDengle和@nelek的答案都正确,我仍将代码保留在这里,因为我认为它的结构性更高。

请注意,无论您将DataGridView放在Panel还是GroupBox内,此代码都可以使用。

'Loop throught all DataGridViews in your Form
Private Sub FormDGV(ByVal Controlo As Control)
    If Controlo.HasChildren Then
        If TypeOf Controlo Is DataGridView Then
            MessageBox.Show(Controlo.Name)
        End If

        For Each Control As Control In Controlo.Controls
            FormDGV(Control)
        Next
    End If
End Sub´

如果您的DataGridViews嵌套在Panel或类似的内容中,则需要通过这样的参数发送特定的Panel-

FormDGV(YourPanel)

但是,如果不是这样,则只需发送表格itselt。