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


Други Windows Forms контроли



страница8/16
Дата27.09.2016
Размер1.09 Mb.
#10985
1   ...   4   5   6   7   8   9   10   11   ...   16

Други Windows Forms контроли


Вече разгледахме най-основните контроли в Windows Forms – текстовите полета и бутоните. Нека сега разгледаме и някой други контроли, които също се използват често при изграждането на потребителски интерфейс.

CheckBox




CheckBox е кутия за избор в стил "да/не". Свойството й Checked задава дали е избрана.

RadioButton




RadioButton е контрола за алтернативен избор. Тя се използва в групи. Всички RadioButton контроли в даден контейнер (например форма) обра­зуват една група и в нея само един RadioButton е избран в даден момент.

За да създадем няколко групи в една форма, трябва да поставим всяка група в свой собствен контейнер, като например GroupBox, Panel или TabPage. Свойството Checked задава дали контролата е избрана. При про­мяна на Checked свойството се активира събитието CheckedChanged.




Panel




Panel представлява контейнер, който съдържа група други контроли. Служи за групиране на контроли. Когато преместим даден панел на друга позиция, всички контроли, които са в него, също се преместват. Ако стойността на свойството Enabled на Panel контролата има стойност false, то всички контроли съдържащи се в нея ще бъдат деактивирани.

TabControl и TabPage


Контролите TabControl и TabPage осигуряват ползването на табове със страници. TabControl съдържа множество TabPage контроли, които се добавят в него чрез свойството Controls.


ListBox




ListBox контролата се използва за изобразяване на списък със символни низове, които потребителят може да избира чрез щракване с мишката върху тях. По-важните свойства на тази контрола са:

  • Items – колекция, която задава списъка от елементи съдържащи се в контролата.

  • SelectionMode – разрешава/забранява избирането на няколко еле­мента едновременно.

  • SelectedIndex, SelectedItem, SelectedIndices, SelectedItems – връщат избра­ния елемент (или избраните елементи).

CheckedListBox




CheckedListBox изобразява списък от възможности за избор "да/не". По-важни свойства са:

  • Items – задава възможностите, от които потребителят ще избира.

  • CheckedItems – връща избраните елементи.

ComboBox




ComboBox представлява кутия за редакция на текст с възможност за drop-down алтернативен избор.

  • Text – съдържа въведения текст.

  • Items – задава възможните стойности, от които потребите­лят може да избира.

  • DropDownStyle – задава стила на контролата – дали само се избира стойност от списъка или може да се въвежда ръчно и друга стойност.

TreeView




TreeView контролата изобразява дървовидни данни. Основни нейни свойства са:

  • Nodes – съдържа дървото (списък от TreeNode елементи).

  • SelectedNode – съдържа текущо избраният възел в дървото.

RichTextBox




RichTextBox е кутия за редакция на текст с форматиране (Rich Text Format). Методите LoadFile(…) и SaveFile(…) позволяват зареждане и записване на текста от контролата в Rich Text Format (RTF) файл или в текстов файл. Свойствата SelectionStart и SelectionEnd служат за извличане и задаване на областта от текста, която е маркирана. Чрез свойствата SelectionFont, SelectionColor и SelectionAlignment могат да се задават шрифт, цвят и подравняване на текущия маркиран текст.

LinkLabel




LinkLabel контролата е подобна на Label контролата, но изглежда като пре­пратка (hyperlink). Свойството Text задава текстовото съдържание на контролата. При щрак­ване с мишката върху препратката се активира събитието LinkClicked.

PictureBox




PictureBox се използва за изобразяване на картинки. Картинката, която ще се изобразява, се задава чрез свойството Image. Свойството SizeMode задава дали картинката да се разшири/намали или центрира при изобра­зяването в контролата.

Картинките, използвани в контролата PictureBox, се запазват като ресур­си. Те се записват в XML формат в .resx файла на съответната форма и при компилация се запазват като ресурси в асем­блито на приложението.


Работа с някои Windows Forms контроли – пример


В настоящия пример ще демонстрираме използването на някои от Windows Forms контролите, които разгледахме: TabControl, TabPage, Panel, RadioButton, GroupBox, CheckedListBox. За целта ще създадем малко приложение, което събира информация от потребителя и след това я показва в диалогов прозорец.

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



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

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

  3. Вземаме от ToolBox на VS.NET един TabControl, поставяме го в горната част на главната форма и му задаваме име TabControl. Под него поставяме един Panel и му задаваме име PanelButtons. На свойствата Dock на поставените контроли задаваме съответно стойности Fill (за таб контролата) и Bottom (за панела). По този начин, при оразмеряване (Resize) на формата, панелът ще си оста­ва отдолу, като се разширя­ва/на­ма­лява само странично, а поставе­ният TabControl ще заема цялото останало пространство. Ето как изглежда формата в този момент:



  1. В TabControl контролата добавяме 3 страници (TabPage контроли)– първата за избиране на списък с продукти, втората за въвеждане на адрес и третата за избор на начин на доставка за поръчката. Подходящи имена за тези контроли са съответно TabPageItems, TabPageAddress и TabPageShipping. Добавянето на TabPage става като щракнем с мишката десния бутон върху TabControl контро­лата и от появилото се меню изберем Add Tab.

  2. В страницата за избор на продукти добавяме една CheckedListBox контрола с име CheckedListBoxItems и я закотвяме за четирите страни на TabPage контролата чрез свойството Anchor от прозореца Properties на редактора. По този начин контролата ще се преораз­ме­рява заедно с формата. Задаваме списък от продукти чрез свой­ството Items и добавяме над контролата един Label с текст "Select items to order:" и име LabelSelectItem.

  3. В страницата за въвеждане на адрес добавяме една TextBox контрола с име TextBoxAddress, закотвяме я към четирите страни на страницата чрез свойството Anchor, задаваме на свойството Multiline стойност true, а на свойството Text задаваме празен низ. Добавяме над контролата един Label с текст "Enter your shipping address:" и име LabelEnterAddress.

  4. В страницата за избор на начина на доставка добавяме една GroupBox контрола с име GroupBoxShippingMethod и текст Select shipping method. В нея добавяме три RadioButton контроли с име­на RadioButtonMail, RadioButtonDHL и RadioButtonFedEx и текст съответно "Mail", "DHL" и "FedEx". Тази комбинация от контроли ни осигурява възможност за алтернативен избор на един от въз­можните доставчици. Най-отдолу в тази страница добавяме и една CheckBox контрола с име CheckBoxTrackShipping и текст "Track shipping". Ето как изглеждат нашите табове в този момент:



  1. В панела за бутоните добавяме два бутона с имена ButtonOK и ButtonCancel и текст съответно "OK" и "Cancel". Чрез двукратно щракване върху бутона ButtonCancel добавяме обработчик за съ­битието му Click, в който добавяме код за затваряне на формата:

    private void ButtonCancel_Click(object sender,

    System.EventArgs e)

    {

    Close();


    }

  2. Остана само да дефинираме обработчик на събитието Click на бутона ButtonOK:

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

{

StringBuilder order = new StringBuilder("Ordered items:\n");



foreach (object item in CheckedListBoxItems.CheckedItems)

{

order.Append(item.ToString());



order.Append("\n");

}

order.Append("Shipping address:\n");



order.Append(TextBoxAddress.Text);
order.Append("\nShipping method: ");

if (RadioButtonMail.Checked)

{

order.Append("Mail");



}

if (RadioButtonDHL.Checked)

{

order.Append("DHL");



}

if (RadioButtonFedEx.Checked)

{

order.Append("FedEx");



}
order.Append("\nTrack shipping: ");

if (CheckBoxTrackShipping.Checked)

{

order.Append("Yes");



}

else


{

order.Append("No");

}
MessageBox.Show(order.ToString(), "Info");
Close();

}


При натискане на бутона извличаме стойностите въведените във всич­ки контроли, от всички страници и ги записваме в символен низ. След това ги извеждаме на екрана в стандартна диалогова кутия. За да направим това първо създаваме един StringBuilder обект, в който ще ги добавяме. След това добавяме стойностите на всички избрани еле­менти от CheckedListBoxItems контролата, като след всеки от тях добавяме нов ред. Добавяме адреса за доставка, после проверяваме кой RadioButton е избран и добавяме съответния метод за доставка към StringBuilder обекта. Накрая проверяваме състоя­ни­ето на CheckBox контролата от страницата за начин на доставка и извеж­даме извлечената от контролите информация в стандартна диалогова кутия.

  1. Нашето приложение е готово и можем да го стартираме и тестваме:





Сподели с приятели:
1   ...   4   5   6   7   8   9   10   11   ...   16




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

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