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

时间:2015-03-30 18:52:23

标签: vb.net datagridview service-reference

今天我一直在网上尝试不同的事情,但我只是错过了船。我试图用提供的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

1 个答案:

答案 0 :(得分:0)

此代码:

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,请务必在结尾处Show()

New 会创建一个新的实例,而您根本不需要新的Form ref或新的DGV。假设已经将列添加到DGV中,添加行也可以简化为:

dgv.Rows.Add(testCaseID, testCaseName)

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