Главная arrow Программирование arrow PC arrow Visual Studio C++ 2010 Express: как работать с DataGridView Wednesday, June 07 2023  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

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

Поделиться:

Visual Studio C++ 2010 Express: как работать с DataGridView Версия для печати
Написал microsin   
15.11.2011

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" п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. Учебник

Последнее обновление ( 16.11.2011 )
 

Комментарии  

  1. #1 Василий
    2014-03-2512:49:45 Спасибо! Очень помогло

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

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

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

< Пред.   След. >

Top of Page
 
microsin © 2023