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


Основни контроли в Windows Forms



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

Основни контроли в Windows Forms


Да разгледаме най-често използваните контроли в Windows Forms: TextBox, Label и Button.

TextBox




TextBox контролата е поле за въвеждане на текст. Може да бъде едно­редово или много редово. По-важните свойства на TextBox са:

  • Multiline – задава дали контролата представлява само един ред или допуска въвеждането на няколко реда текст.

  • Text – съдържа въведения в контролата текст. Когато свойството Multiline е true, за достъп до въведения текст може да се използва и свойството Lines.

  • Lines масив от символни низове, съдържащ въведения текст. Всеки елемент от масива съдържа един от редовете на текста.

Label


Контролата Label се използва за изобразяване на текст във формата. Свойството й Text съдържа текстът, който се изобразява.


Button


Контролата Button представлява бутон, който може да бъде натискан. По-важни нейни свойства и събития са:



  • Click – активира се при натискане на бутона.

  • Text задава текста, изобразяван върху бутона.

Поставяне на контроли във формата


Поставянето на контроли във форма става чрез добавянето им към колекцията от контроли на формата. Това може да се извърши чрез метода Controls.Add(…):

Form form = new Form();

Button button = new Button();

button.Text = "Close";

form.Controls.Add(button);



Редът на контролите (т. нар. Z-order, който споменахме по-рано в тази тема) се определя от реда на поставянето им – последната контрола е най-отгоре. Когато използваме Windows Forms дизайнерът на Visual Studio .NET, той се грижи за правилното поставяне на контролите.

Управление на събития


Прихващането на събитие става чрез добавянето на обработчик за него. За целта създаваме метод, който ще обработва събитието и след това се абонираме за него. Ето пример:

Form form = new Form();

Button button = new Button();

button.Click += new EventHandler(this.button_Click);

...


private void button_Click(object sender, EventArgs e)

{

// Handle the "click" event



}

Windows Forms дизайнерът на Visual Studio .NET улеснява прихващането на събития като генерира автоматично обработчиците при избор на събитие от страницата "Events" на прозореца "Properties".

В Windows Forms има няколко типа събития:



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

  • KeyEventHandler – събития от клавиатурата. Подава се информация кой е натиснатият клавиш, както и информация за състоянието на клавишите [Ctrl], [Shift] и [Alt].

  • MouseEventHandler – събития от мишката. Подава се информация за позицията на мишката и състоянието на нейните бутони.

  • CancelEventHandler – събития, които могат да откажат започнатото действие. Примерно, ако прихващаме събитието Closing на дадена форма, което е от тип CancelEventHandler и потребителят се опита да затвори формата, можем да откажем затварянето, ако данните не са запазени.

Прост калкулатор – пример


Настоящият пример илюстрира използването на Windows Forms за създа­ва­нето на просто приложение – калкулатор за събиране на цели числа:

using System;

using System.Drawing;

using System.Windows.Forms;
public class CalculatorForm : Form

{

private TextBox TextBoxNumber1;



private TextBox TextBoxNumber2;

private TextBox TextBoxSum;

private Button ButtonCalc;

private Label LabelPlus;

private Label LabelEquals;
public CalculatorForm()

{

TextBoxNumber1 = new TextBox();



TextBoxNumber1.Bounds = new Rectangle(

new Point(16, 16), new Size(72, 20));

TextBoxNumber1.MaxLength = 10;
LabelPlus = new Label();

LabelPlus.AutoSize = true;

LabelPlus.Location = new Point(94, 19);

LabelPlus.Text = "+";


TextBoxNumber2 = new TextBox();

TextBoxNumber2.Bounds = new Rectangle(

new Point(112, 16), new Size(72, 20));

TextBoxNumber2.MaxLength = 10;


LabelEquals = new Label();

LabelEquals.AutoSize = true;

LabelEquals.Location = new Point(191, 18);

LabelEquals.Text = "=";


TextBoxSum = new TextBox();

TextBoxSum.Bounds = new Rectangle(

new Point(208, 16), new Size(72, 20));

TextBoxSum.ReadOnly = true;


ButtonCalc = new Button();

ButtonCalc.Bounds = new Rectangle(

new Point(16, 48), new Size(264, 23));

ButtonCalc.Text = "Calculate sum";

ButtonCalc.Click += new EventHandler(

this.ButtonCalc_Click);


this.AcceptButton = ButtonCalc;

this.ClientSize = new Size(298, 87);

this.Controls.Add(TextBoxNumber1);

this.Controls.Add(LabelPlus);

this.Controls.Add(TextBoxNumber2);

this.Controls.Add(LabelEquals);

this.Controls.Add(TextBoxSum);

this.Controls.Add(ButtonCalc);

this.FormBorderStyle = FormBorderStyle.FixedDialog;

this.MaximizeBox = false;

this.MinimizeBox = false;

this.Text = "Calculator";

}
private void ButtonCalc_Click(object aSender, EventArgs aArgs)

{

try



{

int value1 = Int32.Parse(TextBoxNumber1.Text);

int value2 = Int32.Parse(TextBoxNumber2.Text);

int sum = value1 + value2;

TextBoxSum.Text = sum.ToString();

}

catch (FormatException)



{

TextBoxSum.Text = "Invalid!";

}

TextBoxNumber1.SelectAll();



TextBoxNumber2.SelectAll();
TextBoxNumber1.Focus();

}
static void Main()

{

CalculatorForm CalcForm = new CalculatorForm();



Application.Run(CalcForm);

}

}


Как да компилираме и стартираме примера?


За да компилираме примера можем да ползваме конзолния компилатор на .NET Framework за езика C#:

csc CalculatorForm.cs

Можем да извършим компилацията и от VS.NET, но за целта трябва да създадем нов Windows Application проект и да копираме кода в него.

Ето как изглежда примерното приложение в действие:




Как работи примерът?


В примера сме дефинирали класа CalculatorForm, който наследява класа System.Windows.Forms.Form. Този клас представлява главната форма на нашето приложение.

В класа дефинираме необходимите ни контроли – три TextBox контроли (две за въвеждане на числа и една за извеждане на сумата им), две Label контроли и един бутон, при натискането на който ще се изчислява резул­татът от събирането на числата.

В конструктора на формата инициализираме контролите и ги добавяме в нея. За целта им задаваме размери, местоположение и някои други свойства. За текстовите полета, в които потребителят ще въвежда числа­та, които ще събираме, задаваме максималната им дължина в брой симво­ли. За Label контролите задаваме текста, който ще визуализират. За бутона задаваме заглавие. Накрая задаваме начина, по който ще изглеж­да нашата форма.

В метода CalcButton_Click(…) обработваме събитието Click на буто­на за изчисляване на сумата. В него парсваме съдържанието на двете текстови полета, сумираме числовите стойности, получени от тях, и записваме сумата в третото текстово поле. При грешка задаваме невалиден резултат.





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




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

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