今天我一直在网上尝试不同的事情,但我只是错过了船。我试图用提供的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
答案 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 还假定显式表单实例。否则,您可能不会发布到您认为自己的实例。