Обновить DataGridView во время выполнения теста - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время я пишу программу функционального тестирования (FCT), используемую для тестирования PCBA. Основной интерфейс между пользователем имеет DataGridView, который будет использоваться для отображения всей информации, относящейся к функциональному тесту. Я также перехожу с LABView на C#, чтобы разработать их, поэтому еще немного учусь.

Что я хочу сделать в начале приложения, так это показать таблицу с 5 столбцами x 100 строк для данных. Я выбрал 100 строк, чтобы таблица заполняла окно (в этом случае она тоже выглядит немного лучше).

Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь добавить данные в одну строку. Обратите внимание, что первый набор данных, помещенный в сетку, будет находиться только в двух столбцах, а данные, добавленные позже, будут охватывать все пять столбцов. Вот что я пытаюсь обновить сетку данных:

mydatagrid.RowCount = 100; //Put 
int rowIndex; //variable for tracking where I'm placing data on the table 

//Do some stuff that doesn't involve my datagrid

mydatagrid.Rows[rowIndex].Cells[0].Value = someData; //This line executes fine 
mydatagrid.Rows[rowIndex].Cells[1].Value = someOtherData; //This throws an exception

//Do more stuff that doesn't involve my datagrid

Еще один метод обновления таблицы, которую я пробовал, был

mydatagrid.Rows.Add(somedata, someotherdata);

. Хотя это работает хорошо, данные помещаются в конец таблицы, а не наверху.

Кроме того, позже в приложении также потребуется что-то вроде этого:

activaterelays.clicketyclackety();
makemeasurement();
updatedatagrid(); // This function will put data in all five columns

Может быть, я упускаю что-то тривиальное с настройкой, это мой первый go в DataGridView с Windows форм.

1 Ответ

0 голосов
/ 28 апреля 2020

Чтобы использовать индексирование в строках и ячейках в DatagridView, вы должны сначала заполнить его данными.

Попробуйте что-то вроде этого:

public class MyData {
      public string column1{ get; set;}
      public string column2{ get; set;}
      public string column3{ get; set;}
      public string column4{ get; set;}
      public string column5{ get; set;}
}

var data = new List<MyData>() {...}// You must insert the 100 items

//Loads the data to DatagridView, after this line you will see the DatagridView populated.
mydatagrid.DataSource = data;

//Now you can manipulate it
mydatagrid.Rows[rowIndex].Cells[0].Value = someData; 
mydatagrid.Rows[rowIndex].Cells[1].Value = otherdata;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...