2015-03-30 3 views
1

Я сегодня по всей сети пробовал разные вещи, но я как-то пропускаю лодку. Я пытаюсь заполнить datagridview данными из поставляемого api. Однако, когда код выполняется, ошибок не возникает, но в представлении datagridview информация не отображается. Вы также заметите, что указан список. Я могу отображать значения из API в списке, как и ожидалось, поэтому я знаю, что просто делаю что-то неправильно с настройкой datagridview, но я просто не могу точно определить это. Спасибо за любую помощь!Datagridview пуст - попытка заполнить из справочной службы API

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

Я думаю, что способ, которым вы добавляете его, является неправильным. Вы уверены, что id и Name являются ячейками 0 и 1? Вместо этого вы можете ссылаться на имена столбцов, хотя это может и не быть вашей проблемой. – Kat

ответ

0

Этот код:

Dim frmTestCase As New Form1 
Dim dgv As New DataGridView 
dgv = frmTestCase.DataGridView1 

появляется, пытается сократить ссылку на dgv. Но при этом он создает новый экземпляр Form1 и добавляет новый DataGridView1. Вы вполне можете заполнить DGV в форме, которая никогда не отображается.

Одним из средств было бы переименование DataGridView1 на эту форму (Me) на что-то более содержательное или более короткое, используя редактор свойств IDE.

ЕСЛИ DGV находится на текущей форме, так, чтобы создать более короткие ссылки:

Dim dgv As DataGridView = Me.DataGridView1 

Если управление находится на другой существующей форме:

Dim dgv As DataGridView = theOtherFrmRef.DataGridView1 

И наконец, если вы : пытаясь заполнить DGV на новый экземпляр формы, обязательно Show() это в конце.

New создает новый экземпляр любого и вам не нужен новый рефлекс формы или новый DGV. Если предположить, что существуют столбцы уже добавленные в DGV, добавляя строки также может быть упрощено до:

dgv.Rows.Add(testCaseID, testCaseName) 

также предполагает явных случаях формы. В противном случае вы не сможете отправлять сообщения в тот экземпляр, который, как вы думаете.

+0

Спасибо! Приняла такую ​​простую ошибку, когда я ударился головой о стену. Я очень ценю ваш ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^