Изграждане на графичен потребителски интерфейс с Windows Forms



страница13/16
Дата27.09.2016
Размер1.09 Mb.
#10985
1   ...   8   9   10   11   12   13   14   15   16

Контролата DataGrid


DataGrid контролата визуализира таблични данни. Тя осигурява нави­га­ция по редове и колони и позволява редактиране на данните. Като източ­ник на данни най-често се използват ADO.NET DataSet и DataTable. Чрез свой­ството DataSource се задава източника на данни, а чрез свойството DataMember – пътя до данните в рамките на източника. По-важни свойства на контролата са:

  • ReadOnly – разрешава / забранява редакцията на данни.

  • CaptionVisible – показва / скрива заглавието.

  • ColumnHeadersVisible – показва / скрива заглавията на колоните.

  • RowHeadersVisible – показва / скрива колоната в ляво от редовете.

  • TableStyles – задава стилове за таблицата.

    • MappingName – задава таблицата, за която се отнася дефини­ра­ният стил.

    • GridColumnStyles – задава форматиране на отделните колони – заглавие, ширина и др.

Работа с DataGrid контролата – пример


С настоящия пример ще илюстрираме работата с DataGrid контролата в Windows Forms и сложното свързване (complex data binding) на таблица от DataSet с DataGrid.

Ето стъпките за изграждане на нашето приложение:



  1. Стартираме VS.NET и създаваме нов Windows Forms проект.

  2. Задаваме на главната форма име MainForm и заглавие "DataGrid Demo". Променяме и името на файла от Form1.cs на MainForm.cs.

  3. Поставяме във формата една DataGrid контрола. За име на контро­ла­та задаваме DataGridTowns.

  4. Добавяме код, който при зареждане на формата (при събитие Load) създава DataSet, който съдържа таблица Towns с две колони – id и име на град. След като той e създаден, свързваме DataGrid контро­лата с таблицата Towns от този DataSet:

    private void MainForm_Load(object sender, System.EventArgs e)

    {

    // Create table "Towns"



    DataTable towns = new DataTable("Towns");

    towns.Columns.Add(new DataColumn("id", typeof(int)));

    towns.Columns.Add(new DataColumn("name", typeof(string)));

    // Add some rows in the table

    DataRow row = towns.NewRow();

    row["id"] = 1;

    row["name"] = "София";

    towns.Rows.Add(row);


    row = towns.NewRow();

    row["id"] = 2;

    row["name"] = "Пловдив";

    towns.Rows.Add(row);


    row = towns.NewRow();

    row["id"] = 3;

    row["name"] = "Варна";

    towns.Rows.Add(row);

    row = towns.NewRow();

    row["id"] = 4;

    row["name"] = "Русе";

    towns.Rows.Add(row);

    // Add table "Towns" to the DataSet

    DataSet ds = new DataSet();

    ds.Tables.Add(towns);
    // Bind the DataGrid to the DataSet

    DataGridTowns.DataSource = ds;

    DataGridTowns.DataMember = "Towns";

    }


  5. Приложението е готово и можем да го стартираме и тестваме.

Ако променим данните, визуализирани в DataGrid контролата, те ще се променят и в таблицата Towns от DataSet обекта.


TableStyles и дефиниране на стилове – пример


Настоящият пример илюстрира работата с DataGrid контролата в Windows Forms и възможностите за дефиниране на стилове за визуализацията на данните чрез колекцията TableStyles. Ще създадем просто приложение, подобно на това от предходния пример, но чрез колекцията TableStyles ще опре­делим как да бъдат визуализирани колоните на таблицата.

Ето и стъпките за изграждане на нашето приложение:



  1. Началните стъпки за изграждане на приложението са същите като стъпки от 1 до 4 в предишния пример. Изпълняваме ги и пре­ми­наваме към дефинирането на стиловете за визуализация на данните.

  2. Щракваме с десния бутон на мишката върху поставения в главната форма DataGrid и избираме Properties. В прозореца Properties на редактора намираме свойството TableStyles и щракваме върху бутона с многоточието, намиращ се в полето в дясно от него. Отваря се прозорец, който ни позволява да добавяме стилове за таблицата. Щракваме върху бутона Add, за да добавим нов стил. В дясната половина на прозореца можем да променяме свойствата на добавения стил. Намираме свойството Name и му задаваме стойност DataGridTableStyleTowns.



  1. На свойството MappingName задаваме стойност Towns. С това указ­ва­ме, че този стил се отнася за таблицата Towns. Задаваме на свой­ството AlternatingBackColor (указващо цвят, в който ще се оцве­тяват четните редове) стойност Info. Остана да зададем стилове за отделните колони.

  2. Щракваме върху бутона с многоточието, намиращ се в полето в дясно от свойството GridColumnStyles. Отваря се прозорец, който ни позволява да добавяме стилове за отделните колони. Щракваме върху бутона Add, за да добавим нов DataGridTextBoxColumn в ко­лекцията. Задаваме стойност DataGridTextBoxColumnName на свой­ството Name.



  1. Задаваме на свойството MappingName стойност name. Така указваме, че този стил се отнася за полето name. Задаваме на свойствата Alignment, HeaderText и NullText съответно стойности Center, "име на град" и "(няма данни)". Така заглавието на колоната ще е "име на град", текстът ще е центриран, а когато няма стойност в полето, в таблицата ще се визуализира "(няма данни)". Накрая указваме ширина на колоната, като на свойството width зададем стойност 200.

  2. Натискаме бутона [OK], за да запазим промените в колекцията със стиловете за колоните. След това натискаме бутона [OK] и в другия прозорец, за да запазим промените в стиловете за таблиците.

  3. Приложението е готово и можем да го стартираме и тестваме.

Забелязваме, че макар в таблицата Towns да има две колони, в нашия DataGrid се визуализира само едната. Това е така, защото се визу­ализират само полетата, за които са добавени стилове в колекцията GridColumnStyles. Това означава, че ако не искаме дадено поле да бъде визуализирано, просто не указваме стил за него.

Ще отбележим, че когато добавяме стил в колекцията GridColumnStyles, освен DataGridTextBoxColumn, можем да добавяме и DataGridBoolColumn. Това става като щракнем върху стрелката, намираща се в дясната част на бутона Add и от падащия списък изберем DataGridBoolColumn. Чрез DataGridBoolColumn определяме колона, която във всяка клетка, съдържа поле с отметка, представящо булева стойност.




Сподели с приятели:
1   ...   8   9   10   11   12   13   14   15   16




©obuch.info 2024
отнасят до администрацията

    Начална страница