Лабораториска вежба 3 - finki-mk/VP GitHub Wiki
Windows forms - Нарачка на пица
Конечен изглед на апликацијата
Додавање на контролите
Во оваа вежба ќе ги употребуваме следните контроли:
Label
TextBox
RadioButton
CheckBox
ListBox
Button
GroupBox
Големина и порамнување на контролите
Со притиснато Ctrl
може да се селектираат повеќе контроли одеднаш и да се постави некоe својство кое ќе важи за сите нив.
Кога се селектирани повеќе контроли со помош на алатникот за порамнување и подредување на контролите може да се подобри нивниот визуелен изглед.
TabOrder
)
Подредување за таб навигација (Преку менито View -> Tab Order
се добива следниот поглед:
Подредувањето се прави со последователен лев клик на контролите во редослед во кои сакаме да ги подредиме.
Поставување на почетните вредности
Почетните вредности на контролите погледнете ги од конечниот изглед на апликацијата на слика 1.
За додавање на ставки во листата со десерти кликнете на (Play) копчето прикажано на следната слика и кликнете EditItems
.
Програмирање на бизнис логиката
Апликацијата треба при секој промена од страна на корисникот на вредностите на контролите:
- избор на пица
- менување на цените на пиците
- избор на додатоци
- менување на цените на додатоците
- менување на количината или цените на пијалоците
- менување на селекција од листата со десерти и менување на цената на десертот
да ја промени вкупната цена на нарачката.
За таа цел ќе додадеме еден привате метод кој во зависност од состојбата на контролите ќе ја обновува вредноста на контролата за прикажување на вкупната цена на нарачката.
За превземање на вредностите од контролите го пристапуваме својството Text
. Ова својство е од тип string
, затоа кога сакаме да го претвориме во соодветен тип за претставување на броеви (int, float, double, decimal
) треба да го парсираме. Еден начин да се направи тоа е со следниот метод:
float f = 0;
float.TryParse(controlName.Text, out f);
Притоа овој метод враќа bool
променлива дали успеало конвертирањето. Доколку не успее вредноста на променливата f
ќе остане иста (0).
Додадете и имплементирајте го следниот метод за пресметување на вкупната цена на нарачката:
public void calculateTotal()
{
// ... vasiot kod ovde ...
}
Програмирање на настаните
Откако го имплементиравме методот кој ја пресметува вкупната цена на нарчаката и ја поставува оваа вредност на контролата за приказ на вкупната цена, треба да се повика овој метод на соодветните настани. Настаните кои треба да се испрограмираат се следните:
CheckedChanged
- се случува секогаш кога вредностаChecked
се менува (стандарден настан заRadioButton
иCheckBox
)TextChanged
- се случува секогаш кога се менува вредноста на својствотоText
наTextBox
контролата
Методите кои може да се повикаат кога се случува некој настан ја имаат следната дефиниција:
private void controlName_EventName(object sender, EventArgs e)
{
}
Затоа што дефиницијата на методите за сите настани и сите контроли е иста, еден ваков метод може да се повикува за повеќе различни настани и од повеќе контроли. Додавање на ваков метод може да се направи рачно, а може и преку двоен клик на контролата за која сакаме да го додадеме или со двоен клик во празното поле во листата со настани за контролата. Двоен клик на контролата секогаш додава настан за еден (најчесто употребуван) настан настан за таа контрола.
За сите останати настани и тоа како треба да функционира апликацијата изврешете ја финалната апликација.
MessageBox
MessageBox
е класа со статични методи кои креираат едноставни дијалог прозорци кои прикажуваат кратки пораки или пак означуваат знајни моменти во извршувањето на апликацијата. Во оваа апликација еден таков метод треба да се повика при клик на копчето Откажи
. Прикажувањто на соодветниот MessageBox
се прави со следниот код:
DialogResult result = MessageBox.Show("Dolga poraka", "Naslov na dijalogot",
MessageBoxButtons.YesNo, // vid na dijalogot
MessageBoxIcon.Question); // ikona na dijalogot
if (result == DialogResult.Yes)
{
Application.Exit();
}
AcceptButton
и CancelButton
Поставување на Секоја форма има две својства кои ги означуваат копчињата чии што Click
настани се активираат на одредни копчиња од тастатурата.
AcceptButton
го означува копчето чии што клик настан ќе се испали кога ќе се притесне ENTER
копчето.
CancelButton
го означува копчето чии што клик настан ќе се испали кога ќе се притисне ESC
копчето.