Vb.net Datagridview为空-尝试从API服务引用填充

Vb.net Datagridview为空-尝试从API服务引用填充,vb.net,datagridview,service-reference,Vb.net,Datagridview,Service Reference,今天我在网上尝试了很多不同的事情,但不知怎么的,我只是错过了机会。我正试图用提供的api中的数据填充datagridview。但是,当代码执行时,不会抛出任何错误,但datagridview中不会显示任何信息。您还将注意到引用了一个列表框。我能够像预期的那样在列表框中显示API中的值,所以我知道我只是在datagridview设置中做了一些错误的事情,但我似乎无法准确指出它。谢谢你的帮助 Dim frmTestCase As New Form1 Dim dgv As New Dat

今天我在网上尝试了很多不同的事情,但不知怎么的,我只是错过了机会。我正试图用提供的api中的数据填充datagridview。但是,当代码执行时,不会抛出任何错误,但datagridview中不会显示任何信息。您还将注意到引用了一个列表框。我能够像预期的那样在列表框中显示API中的值,所以我知道我只是在datagridview设置中做了一些错误的事情,但我似乎无法准确指出它。谢谢你的帮助

  Dim frmTestCase As New Form1

    Dim dgv As New DataGridView

    dgv = frmTestCase.DataGridView1

    dgv.Columns.Add("ID", "ID")
    dgv.Columns.Add("Name", "Name")

    Dim i As Integer

    'Loop through test cases and get their data for datagrid
    For i = 0 To UBound(remoteTestCases) - 1
        Dim matchingTestCase = remoteTestCases(i)
        Dim testCaseID As String = CStr(matchingTestCase.TestCaseId.Value)
        Dim testCaseName As String = matchingTestCase.Name

        Dim row As DataGridViewRow = New DataGridViewRow

        row.CreateCells(dgv)

        row.Cells(0).Value = testCaseID
        row.Cells(1).Value = testCaseName

        dgv.Rows.Add(row)


        Me.ListBox1.Items.Add(testCaseID)

    Next
此代码:

Dim frmTestCase As New Form1
Dim dgv As New DataGridView
dgv = frmTestCase.DataGridView1
似乎正在尝试缩短对
dgv
的引用。但这样做,它会创建一个新的
Form1
实例,并扩展为一个新的
DataGridView1
。您很可能正在一个从未显示的表单上填充DGV

一种补救方法是使用IDE属性编辑器将此表单(Me)上的
DataGridView1
重命名为更有意义或更短的名称

如果dgv在当前表单上,则创建较短引用的方法是:

Dim dgv As DataGridView = Me.DataGridView1
如果控件位于不同的现有表单上1

Dim dgv As DataGridView = theOtherFrmRef.DataGridView1
最后,如果您试图在新表单实例上填充DGV,请确保在最后显示它

New
创建任何内容的新实例,您根本不需要新的表单引用或新的DGV。假设已经有列添加到DGV,添加行也可以简化为:

dgv.Rows.Add(testCaseID, testCaseName)

1还假定显式表单实例。否则,您可能不会发布到您认为是的实例中。

我认为您添加实例的方式不正确。您确定id和名称是单元格0和1吗?您可能希望引用列名,尽管这可能不是您的问题。谢谢!这么简单的一个错误让我的头撞到了墙上。我非常感谢你的回答