Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7.doc
Скачиваний:
16
Добавлен:
05.05.2019
Размер:
851.46 Кб
Скачать

Средства отображения таблиц

До сих пор для отображения информации, полученной из таблиц, мы использовали консольное окно. Но это были лишь примеры, демонстрирующие возможности работы с таблицами. Реальное приложение должно иметь визуальные, удобные для пользователя средства отображения табличной информации. Таким средством является класс DataGridView, расположенный в пространстве имен System.windows.Forms. Этот инструмент позволяет не только отображать табличные структуры в удобном для пользователя виде. С помощью DataGridView вы можете редактировать представленное содержимое (т. е. объекта DataTable, см. предыдущий раздел), и это редактирование будет тут же отражаться на содержимом самой таблицы, представлением которой является этот элемент окна. Но на этом возможности не заканчиваются. Вы можете менять содержимое представляемой таблицы, и эти изменения будут отображаться на экране.

Рассмотрим пример, который демонстрирует принципы использования объектов класса DataGridView.

Для начала создайте приложение типа Visual С# | Windows по шаблону Windows Application. При этом автоматически создается главная форма приложения. Для того чтобы использовать элемент DataGridView, следует обратиться к панели Toolbox и перетащить оттуда элемент на вашу форму. Затем визуальными средствами можно указать место расположения элемента и его размер.

Чтобы элемент DataGridView связать с конкретной таблицей, она должна быть предварительно создана. Заполнить же ее можно или непосредственно программным путем, как это мы делали в предыдущем разделе, или же получив данные с SQL Server, что нам еще предстоит сделать.

Для создания таблицы и связывания ее с элементом DataGridView выбирается событие Load (событие для объекта класса Form пространства имен System.windows.Forms), процедуру обработки которого можно легко создать, обратившись к окну свойств главного окна (формы). Событие происходит во время создания формы, точнее, перед тем как окно будет отображено на экране. Содержимое процедуры обработки события можно увидеть в листинге 5.6. Создание и заполнение таблицы для нас — вполне знакомые операции. Интересна строка

this.dataGridViewl.DataSource = t1;

Этой строки вполне достаточно, чтобы связать наш элемент отображения с реальной таблицей. После этого можно просматривать и редактировать эту таблицу. Объект класса DataGridView обладает свойствами Rows и Columns, при помощи которых, в частности, можно добавлять и удалять строки и столбцы таблицы..

Листинг 5.6

private void Form1_Load(object sender, EventArgs e)

{

DataColumn dt;

this.t1 = new DataTable("names");

// столбец id - первичный ключ

dt = new DataColumn();

dt.DataType = System.Type.GetType("System.Int32");

dt.ColumnName = "id";

dt.AutoIncrement = true;

dt.Unique = true;

dt.AllowDBNull = false;

t1.Columns.Add(dt);

// столбец name

dt = new DataColumn();

dt.DataType = System.Type.GetType("System.String");

dt.ColumnName = "name";

dt.AllowDBNull = false;

dt.DefaultValue = " ";

t1.Columns.Add(dt);

// заполняем таблицу

DataRow row1 = t1.NewRow();

row1["name"] = "Green";

t1.Rows.Add(row1);

row1 = t1.NewRow();

row1["name"] = "White";

t1.Rows.Add(row1);

row1 = t1.NewRow();

row1["name"] = "Black";

t1.Rows.Add(row1);

// для объекта Grid определяем источник

this.dataGridView1.DataSource = t1;

this.dataGridView1.Columns.Add("col1", "column1");

this.dataGridView1.Columns["col1"].ReadOnly = true;

}