Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Бесценные методические наставления




Замечательный управляющий элемент DataGridView позволяет отображать данные в табличном формате. Замечательно то, что в ячейке таблицы могут присутствовать не только текстовые или числовые данные, но также и: кнопки, переключатели, списки, изображения и некоторые другие сущности. Очень часто DataGridView используют для обработки данных, хранящихся в СУБД. Некоторые из этих возможностей, как и приемы работы с DataGridView (на C#), содержатся в источнике [5].

Шаг 1. Создаем каркас приложения. Как и прежде, создайте новый проект, выбрав платформу CLR и каркас WinForms. Затолкайте на форму компонент DataGridView.

Шаг 2. Создаем столбцы таблицы. Изначально таблица не имеет столбцов; их можно создавать на этапе дизайна или уже на этапе выполнения приложения. Второй способ целесообразно использовать тогда, когда число столбцов и их свойства на этапе дизайна приложения неизвестны.

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

По минимуму для каждого столбца необходимо присвоить значение свойству HeaderText (наименование столбца, лучше кириллицей) и выбрать тип данных столбца ColumnType, в нашем случае это будет DataGridViewTextBoxColumn. Еще можно задать смысловое имя столбца (Name), лучше английскими буковками. Элементарно просто можно задать всплывающую подсказку ToolTipText для столбца, что должно несказанно удивить юзера вашей программулины, который наверняка не ожидал от вас такого сервиса.

Когда вы запустите приложение на выполнение, то должны лицезреть таблицу во всей, как говорится, красе.

Шаг 3. Разработка класса. Разработайте класс, объекты которого должны содержать данные, оговоренные в вашем варианте задания. В обязательном порядке реализуйте в классе несколько свойств, в целях, скажем, тренажа и лучшего усвоения материала (см. подраздел «Свойства» в работе [2]). Добавьте в класс необходимые методы.

Класс лучше разместить в отдельном файле. Для этого проще всего с помощью команды ProjectèAdd Class добавить в проект обычный С++ класс, в результате чего, как обычно, будет создан заголовочный файл и файл реализации, например, MyCls.h и MyCls.cpp. Сразу исключите из проекта файл MyCls.cpp, вызвав для него контекстное меню и выполнив в нем команду Exclude from project. Заголовочный файл MyCls.h приведите примерно к такому виду:

#pragma once

using namespace System;

Namespace GV

{

Ref class CMyCls

{

String ^str;

public:

property int Number; /*Простейшее определение свойства, значение

которого хранится в некоторой скрытой ячейке памяти*/

/*Значение свойства Name хранится в поле str*/

property String^ Name

{

String^ get()

{

return str;

}

void set(String ^ value)

{

str=value;

}

}

};

}

 

Разумеется, что имя пространства имен вы замените на свое, такое же как в файле Form1.h. Наверное, и имя класса вы выберите другое.

В начало файла Form1.h добавьте директиву #include "MyCls.h", разумеется, после директивы #pragma once. Теперь в классе формы вы сможете использовать имя вашего класса.

Так как вам понадобится где-то хранить и обрабатывать много объектов этого класса, то надо использовать массив. Опишите его в файле Form1.h:

#pragma endregion

private:

array <CMyCls^> ^Arr;

 

Теперь в методах класса Form1 вы сможете использовать массив Arr. Само собой, что вместо динамического массива Arr вы можете использовать (статический) класс System::Array или еще какое-нибудь хранилище-вместилище.

Шаг 4. Заполняем строки таблицы. Для того чтобы вывести данные в таблицу, необходимо, очевидно, проделать следующее:

Ø добавить в приложение меню, одной из команд которого должна быть команда открытия файла с исходными данными;

Ø подсчитайте число записей файла для того чтобы задать конкретное число элементов массива, если вы используете динамический массив array (не путать с Array!);

Ø читайте запись файла, контролируйте корректность данных, помещайте прочитанные данные в объект, а объект – в массив;

Ø присвойте значения элементов массива строкам таблицы DataGridView.

 

В ячейки таблицы DataGridView данные можно записывать многими способами (см. [5]). Приведем пример:

CMyCls ^obj=gcnew CMyCls;

obj->Number=1024;

obj->Name="Кот Матроскин";

int ArrSize=23;

Arr=gcnew array <CMyCls^>(ArrSize);

Arr[0]=obj;

/*Можно создать массив строк и сразу заполнить всю строку таблицы*/

array<String^>^row1 = gcnew array<String^>{

(Arr[0]->Number).ToString(),Arr[0]->Name};

this->dataGridView1->Rows->Add(row1);

/*А можно заполнять ячейки таблицы по одной*/

dataGridView1->Rows[1]->Cells[0]->Value=(Arr[0]->Number).ToString();

dataGridView1->Rows[1]->Cells[1]->Value=Arr[0]->Name;

/*А это что?*/

this->Text=safe_cast<String ^>(dataGridView1->Rows[0]->Cells[0]->Value);

 

Шаг 5. Для профессионалов. Вы легко можете создавать новые формы приложения, помимо главной (подразумевается Form1), создавать и показывать их в любое подходящее для вас время или прятать, обмениваться с ними данными, дружить, обниматься и т.п. Для этого возьмите керамический кувшин, потрите его тщательно и с помощью тайной команды ProjectèAdd New Item вызовите волшебного Аладдина и прикажите ему создать компонент Windows Form. Украсьте новехонькую формочку разными стекляшками, зеркальцами, перьями и др. подобными не менее ценными атрибутами. Допустим, вы нарекли эту формочку совершенно оригинальным, современным именем Form2. Тогда в файл Form1.h добавьте, не поленитесь, директиву #include “Form2.h”. Теперь точь-в-точь в тот момент времени, когда вам захочется увидеть вторую формочку, пропишите следующие заклинания:

Form2 ^f2 = gcnew Form2();/*Просто создали форму*/

f2 ->ShowDialog(); /*Показываем форму как диалоговое (модальное) окно.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...