Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Пользовательский интерфейс на основе таблиц

Поиск

 

Для такого представления данных Windows.Forms имеет специальный элемент управления DataGridView. С помощью этого элемента управления можно добавлять новые записи, изменять значения в ячейках, удалять строки. Программный интерфейс этого класса достаточно сложный, но простые опции можно реализовать минимальными усилиями. Главное условие, чтобы этот элемент управления работал с данными – назначение источника данных для него (свойство DataSource). Кстати, источником данных может быть любая кол-

лекция – список объектов класса, таблица из набора данных и пр.

public Form1()

{

InitializeComponent();

OdbcConnection con = new OdbcConnection("DSN=proba");  con.Open();

OdbcDataAdapter adapt = new OdbcDataAdapter

                              ("select * from Sessions", con);  ds = new DataSet();  adapt.Fill(ds, "Sessions");  con.Close();

  dataGridView1.DataSource = ds.Tables["Sessions"];

 

Рис. 42. Загрузка в DataGridView данных из назначенного         источника данных.

 

Однако, как видно из предшествующего рисунка, настройки внешнего вида элемента управления (заголовки столбцов) назначаются автоматически, исходя из схемы таблицы-источника данных.

На следующем рисунке показан интерфейс, который подстроен под пользователя. Для этого требуется провести программную настройку элемента DataGridView – программное создание всех столбцов и привязка их к полям источника данных. Привязка к полям осуществляется с помощью объекта класса BindingSource, который является своеобразным посредником между элементом управления и источником данных.

 

Рис. 43. Вид после программной настройки элемента DataGridView.

 public partial class Form2: Form

{

DataSet ds;

 BindingSource bindsrc = new BindingSource();     public Form2()

{

  InitializeComponent();

  OdbcConnection con = new OdbcConnection("DSN=proba");   con.Open();

  OdbcDataAdapter adapt = new OdbcDataAdapter

                              ("select * from Sessions", con);   ds = new DataSet();

  adapt.Fill(ds, "Sessions");   con.Close();

       

  // настройка BindingSource на источник данных –

  // таблицу набора данных   bindsrc.DataSource = ds.Tables[0];

        

  // отмена генерации столбцов DataGridView   dataGridView1.AutoGenerateColumns = false;

 

  // установка привязки к источнику данных   dataGridView1.DataSource = bindsrc;

            

  // последовательное создание столбцов элемента управления

  DataGridViewTextBoxColumn NumGroup =                         new DataGridViewTextBoxColumn();

  // имя поля, которое является источником данных для столбца

  NumGroup.DataPropertyName = "NumGroup";    // заголовок столбца

  NumGroup.HeaderText = "Учебная группа";

  // добавление столбца в коллекцию столбцов DataGridView   dataGridView1.Columns.Add(NumGroup);

 

  DataGridViewComboBoxColumn colSem = 

                           new DataGridViewComboBoxColumn();   colSem.DataPropertyName = "NumSemestr";   colSem.HeaderText = "Семестр";   colSem.DataSource = new int[] { 1, 2 };   dataGridView1.Columns.Add(colSem);

 

  DataGridViewTextBoxColumn colTitle = 

                           new DataGridViewTextBoxColumn();   colTitle.DataPropertyName = "idSubject";   colTitle.HeaderText = "Дисциплина";   dataGridView1.Columns.Add(colTitle);

 

  DataGridViewTextBoxColumn colZE = 

                         new DataGridViewTextBoxColumn();   colZE.DataPropertyName = "Zach_Exam";   colZE.HeaderText = "Отчетность";   dataGridView1.Columns.Add(colZE); }

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 113; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.34.51 (0.007 с.)