DataGridView - стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом.
1. Сначала стандартным способом кидаем в форму компонент DataGridView.
Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false, ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.
2. Столбцы и строки можно добавлять во время выполнения программы (см. [1]). Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.
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];
Текущая строка помечена в таблице треугольничком:
5. Менять данные в ячейках таблицы можно только тогда, когда существуют соответствующий столбец и соответствующая строка, иначе произойдет ошибка выполнения ("System.ArgumentOutOfRangeException" пpoизoшлo в mscorlib.dll Дoпoлнитeльныe cвeдeния: Индeкc зa пpeдeлaми диaпaзoнa. Индeкc дoлжeн быть пoлoжитeльным чиcлoм, a eгo paзмep нe дoлжeн пpeвышaть paзмep кoллeкции.). После добавления строки методом 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. Учебник.
|
Комментарии
2014-03-2512:49:45 Спасибо! Очень помогло