Windows Forms

Након креирања новог Windows Forms App (.NET Framework) пројекта, развојно окружење нам приказује режим дизајна форме. Анализирајмо га. У фокусу је прозор Form1.cs [Design] који приказује контролу Form1, са леве стране три дугмета међу којима је средње дугме Toolbox где се налазе све контроле које можемо користити, са десне стране прозор Solution Explorer у којем се виде сви делови нашег решења, а испод њега прозор Properties који тренурно приказује својства означење контроле Form1.

Притиском тастера F7 (или десни клик па View Code) отвара се и прозор Form1.cs у којем се види почетни код кога је генерисало само окружење:

Из кода видимо да је у методи Form1() задата наредба да се иницијализује компонента. Без уношења додатног кода или било каквих измена, ако покренемо наше решење притиском на CTRL+F5, добијамо готову Windows апликацију која не ради ништа, а састоји се од прозора који у насловној линији има своју икону, свој назив Form1, дугмад Minimize, Maximize и Close.

Затворићемо ову апликацију и кренути да је модификујемо, на почеку само променом својстава контроле Form1 у Properties прозору. На пример, променом својства Text са “Form1” на “Моја прва апликација” промениће се назив апликације у насловној линији. Ако променимо својство StartPosition са WindowsDefaultLocation на CenterScreen, апликација ће се при покретању увек приказати на средини екрана. Ако променимо својство Size са 816,489 на 640,480, апликација ће се при покретању имати нове задате димензије итд. Сва својства форми описана су у званичној документацији, а могу се мењати и директно у коду апликације. Покренимо сада наше решење:

Поред својстава контроле Form1, у прозору Properties можемо видети и догађаје дефинисане за ову контролу, кликом на Events икону ⚡. Један од често коришћених догађаја у оператувим системима у графичком окружењу је леви клик миша (MouseClick). Дуплим кликом на поље поред овог догађаја:

креираће се метода Form1_MouseClick у којој можемо да дефинишемо шта ће се десити када се овај догађај изврши. На пример, кликом на површину форме, желимо да се испише порука “Добро дошли!”:

Овим смо уградили једну функционалност у наше решење, па покретањем апликације и кликом на форму добијамо поруку као на слици:

Описи свих осталих догађаја везаних за форме такође се налазе у званичној документацији, а упознаћемо их детаљно кроз сам рад.

Форме се такође могу креирати из самог кода програма. Преправићемо функционалност ове апликације, тако да се кликом на форму креира нова форма са одређеним својствима. Креираћемо нову методу:

public void KreirajNovuFormu()
{
    // Креирање нове инстанце форме:
    Form NovaForma = new Form();
    // Промена својстава форме: 
    NovaForma.Text = "Моја нова форма";
    NovaForma.StartPosition = FormStartPosition.CenterScreen;
    NovaForma.Show();
}

и позвати је у претходно креираној методи Form1_MouseClick:

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
    KreirajNovuFormu();
}

Сада се кликом на форму појављује нова форма са називом “Моја нова форма” на центру екрана.

Из претходних примера видели сте да је величина форме одређена ширином и висином – у првом примеру те вредности променили смо на 640 и 480, што значи да је површину форме чинила мрежа пиксела, ширине 640 тачака и висине 480 тачака. Нулта почетна координата (0,0) налази се у горњем левом углу, а последња у доњем десном углу.

Преправићемо опет функционалност наше апликације, тако да се на месту на форми где се кликне мишем исцрта крстић. Користићемо методе објекта класе Graphics и објекат класе Pen. Линије крстића биће црне боје, ширине 5 тачака. Од тачке где се кликне e крстић ће бити нацртан са по 15 тачака лево, 15 тачака десно, 15 тачака горе и 15 тачака доле.

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
    Graphics grafika = CreateGraphics();
    Pen olovka = new Pen(Color.Black, 5);
    grafika.DrawLine(olovka, e.X - 15, e.Y, e.X + 15, e.Y);
    grafika.DrawLine(olovka, e.X, e.Y - 15, e.X, e.Y + 15);
}