Программирование PC Visual Studio C++ 2010 Express: как работать с DataGridView Tue, February 21 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Visual Studio C++ 2010 Express: как работать с DataGridView Печать
Добавил(а) microsin   

DataGridView - стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом. 

1. Сначала стандартным способом кидаем в форму компонент DataGridView.

DataGridView-adding.PNG

Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false, ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.

2. Столбцы и строки можно добавлять во время выполнения программы (см. [1]). Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.

DataGridView-edit-columns.PNG

3. Обращение к ячейкам DataGridView довольно простое. Индексация столбцов (Columns) и строк (Rows) идет относительно нуля. Столбец с индексом 0 самый левый, и строка с индексом 0 самая верхняя. Количество строк можно получить через свойство RowCount. Добавляются строки методом Удаляются строки методом Rows->Add(), удаляются методом Rows->RemoveAt(номер строки). Пример добавления и удаления строк: 

//добавим в dataGridView1 4 строки
dataGridView1->Rows->Add();
dataGridView1->Rows->Add();
dataGridView1->Rows->Add();
dataGridView1->Rows->Add();

//удалим все строки из dataGridView1
while (0 != dataGridView1->RowCount)
  dataGridView1->Rows->RemoveAt(0);

4. Узнать номер текущей строки можно через HitTestInfo->RowIndex

int idx = dataGridView1->HitTestInfo->RowIndex;

Установить (поменять) текущую строку можно через свойство CurrentCell (в примере устанавливаем третью текущую строку): 

int idx = 2;
dataGridView1->CurrentCell = dataGridView1->Rows[idx]->Cells[0];

Текущая строка помечена в таблице треугольничком:

DataGridView-current-row.PNG 

5. Менять данные в ячейках таблицы можно только тогда, когда существуют соответствующий столбец и соответствующая строка, иначе произойдет ошибка выполнения ("System.ArgumentOutOfRangeException" произошло в mscorlib.dll Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, a его размер не должен превышать размер коллекции.). После добавления строки методом Add все значения в ячейках добавленной строки будут пустые. К ячейке таблицы можно обращаться по номеру столбца и номеру строки через свойство Value. Пример добавления и заполнения таблицы: 

int i = 0;     //нумерация строк начинается с 0

if ( (dataGridView1->RowCount - 1) < i )
  dataGridView1->Rows->Add();

//№ строки добавляем в первый столбец Cells[0]
dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString();
//текст добавим во второй столбец Cells[1]
dataGridView1->Rows[i]->Cells[1]->Value = "пример текста";

i++;          //переходим к следующей строке
dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString();
  ...

[Ссылки]

1Все о DataGridView. Учебник

 

Добавить комментарий


Защитный код
Обновить

Top of Page