GroupBox

GroupBox је компонента која служи за груписање других компоненти које може да садржи форма, нпр. RadioButton-a и CheckBox-oва. Ова контрола дефинише кориснику интерфејса које су могућности у одређеној групи. Дата контрола се креира као и све остале компоненте раније, двоструким кликом на иконицу компоненте у Toolbox-у, или динамички кодом:


//Kreiramo GroupBox
GroupBox grupa = new GroupBox();
//Dodeljujemo GroupBox formi
Controls.Add(grupa);

Слика 7.62. Прозор Properties Слика 7.63. Форма са GroupBox-ом


RadioButton или CheckBox додајемо тако што прво означимо у форми већ додати GroupBox, а затим два пута кликнемо на иконице RadioButton или CheckBox у Toolbox-у, у зависности од тога шта желимо да додамо. Поступак је исти и кад нам форма садржи више GroupBox-ова. Ако смо додали форми RadioButton или CheckBox ван жељеног GroupBox ми га можемо померати помоћу миша по форми и доделити га жељеном GroupBox тако што ћемо га сместити у оквир GroupBox.

Подешавање GroupBox-a


GroupBox-неке основне особине

За подешавање неких основних особина као што су: Name, Text, BackColor и ForeColor, Location, Width i Height, важе слична правила као и за претходне компоненте.
Динамички начин подешавања датих особина:

//Kreiramo GroupBox
GroupBox grupa = new GroupBox();
//Dodeljujemo naziv GroupBox-u
grupa.Name = "GRUPA";
//Odredjujemo boju pozadine GroupBox-a
grupa.BackColor = Color.Green;
//Odredjujemo boju slova GroupBox-a
grupa.ForeColor = Color.Yellow;
//Odredjujemo tekst GroupBox-a
grupa.Text = "Grupa";
//Odredjujemo font teksta u GroupBox-u
grupa.Font = new Font("Georgia",20);
//Odredjujemo poziciju GroupBox-a
grupa.Location = new Point(5,5);
//Odredjujemo sirinu GroupBox-a
grupa.Width = 200;
//Odredjujemo visinu GroupBox-a
grupa.Height = 200;
//Dodeljujemo GroupBox formi
Controls.Add(grupa);
//Kreiramo novi RadioButton
RadioButton rb = new RadioButton();
//Odredjujemo lokaciju RadioButton
rb.Location = new Point(50,50);
//Dodajemo RadioButton GroupBox-u
grupa.Controls.Add(rb);

Слика 7.64. Форма након подешавања

Пример 1. Направимо програм за посластичарницу! У нашем програму моћи ћемо да одаберемо како желимо да нам се служи сладолед, које кугле желимо, и са којим преливом. За то ће нам требати три GroupBox-а: Корнет, Прелив, Укуси кугли. Требаће нам и једно дугме, кад корисник одабере своју комбинацију сладоледа и кликне на то дугме, појавиће се MessageBox са врстом одабраног корнета и прелива, а потом и нови MessageBox са одабраним укусима кугли.

Решење:

Слика 7.65. Први изглед форме

У први GroupBox, Корнет, додаћемо три RadioButton-a: Обичан корнет, Чоколадни корнет и Порција, у други GroupBox, Прелив, додаћемо такође три RadioButton-a: Јагода, Чоколада, Бела чоколада, а у трећи GroupBox, Укуси кугли, додаћемо осам CheckBox-oва: Ванила, Чоколада, Малага, Лимун, Јагода, Страћатела, Шумско воће и Бела чоколада.
Напомена: У GroupBox-овима Корнет и Порција додајемо RadioButton-е, јер само можемо одабрати једну од опција из сваке групе, тј. један вид паковања и један укус прелива. А у GroupBox-у Укуси кугли додајемо CheckBox-oве, јер корисник може да одабере више различитих укуса.


Слика 7.66. Форма након подешених назива елемената


Део потребног кода је следећи:

private void button1_Click(object sender, EventArgs e)
{
    //Ako je cekiran prvi radioButton
    if (radioButton1.Checked)
    {
        //Ako je pored prvog cekiran i cetvrti radioButton
        if (radioButton4.Checked)
            //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
            MessageBox.Show("Narucili ste obican kornet sa prelivom od jagode.");
        //Ako je pored prvog cekiran i peti radioButton
        else if (radioButton5.Checked)
             //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
             MessageBox.Show("Narucili ste obican kornet sa prelivom od cokolade.");
        //Ako je pored prvog cekiran i sesti radioButton
        else
             //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
             MessageBox.Show("Narucili ste obican kornet sa prelivom od bele cokolade.");           
    }
    //Ako je cekiran drugi radioButton
    else if (radioButton2.Checked)
    {
        //Ako je pored drugog cekiran i cetvrti radioButton
        if (radioButton4.Checked)
            //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
            MessageBox.Show("Narucili ste cokoladan kornet sa prelivom od jagode.");
        //Ako je pored drugog cekiran i peti radioButton
        else if (radioButton5.Checked)
            //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
            MessageBox.Show("Narucili ste cokoladan kornet sa prelivom od cokolade.");
        //Ako je pored drugog cekiran i sesti radioButton
        else
            //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
            MessageBox.Show("Narucili ste cokoladan kornet sa prelivom od bele cokolade.");
    }
    //Ako je cekiran treci radioButton
    else
    {
        //Ako je pored treceg cekiran i cetvrti radioButton
        if (radioButton4.Checked)
            //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
            MessageBox.Show("Narucili ste porciju sa prelivom od jagode.");
        //Ako je pored treceg cekiran i peti radioButton
        else if (radioButton5.Checked)
              //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
             MessageBox.Show("Narucili ste porciju sa prelivom od cokolade.");
        //Ako je pored treceg cekiran i sesti radioButton
        else
             //MessageBox se pojavljuje sa informacijama o odabranom kornetu i prelivu
             MessageBox.Show("Narucili ste porciju sa prelivom od bele cokolade.");
    }
    //String koji ce se javljati u drugom MessageBox-u i na koji cemo dodavati
    //Odabrane ukuse kugli 
    string kugla = "Narucili ste kugle sa ukusom:" + '\n';
    if (checkBox1.Checked)//Ako je odabrana vanila
         //Dodajemo na string tekst prvog checkBox-a
        kugla = kugla + checkBox1.Text + '\n';
    //Ako je odabrana cokolada
    if (checkBox2.Checked)
         //Dodajemo na string tekst drugog checkBox-a
        kugla = kugla + checkBox2.Text + '\n';
    //Ako je odabrana malaga
    if (checkBox3.Checked)
        //Dodajemo na string tekst treceg checkBox-a
        kugla = kugla + checkBox3.Text + '\n';
    //Ako je odabrana limun
    if (checkBox4.Checked)
         //Dodajemo na string tekst cetvrtog checkBox-a
        kugla = kugla + checkBox4.Text + '\n';
    //Ako je odabrana jagoda
    if (checkBox5.Checked)
         //Dodajemo na string tekst petog checkBox-a
        kugla = kugla + checkBox5.Text + '\n';
    //Ako je odabrana stracatela
    if (checkBox6.Checked)
        //Dodajemo na string tekst sestog checkBox-a
        kugla = kugla + checkBox6.Text + '\n';
    //Ako je odabrana sumsko voce
    if (checkBox7.Checked)
        //Dodajemo na string tekst sedmog checkBox-a
        kugla = kugla + checkBox7.Text + '\n';
    //Ako je odabrana bela cokolada
    if (checkBox8.Checked)
        //Dodajemo na string tekst osmog checkBox-a
        kugla = kugla + checkBox8.Text + '\n';
    //MessageBox sa stringom kugla koji podrazumeva i odabrane ukuse kugli
    MessageBox.Show(kugla);
}

Пример 2. Направимо програм у којем ћемо имати textBox, један groupBox, једно дугме, две лабеле и четири radioButtona-а. Програм треба да за унети број килограма и одабрано воће рачуна укупан износ, при чему се зна цена килограма сваког воћа.

Решење :


Слика 7.67. Правимо форму облика Слика 7.68. Преименујемо компоненте

Притиском на дугме "Racunaj", u label-и се исписује одговарајућа порука кориснику.

Код који нам је неопходан да би наш програм радио:

private void button1_Click(object sender, EventArgs e)
{
    int ukupno = 0;
    int broj = int.Parse(textBox1.Text);       
    if (radioButton1.Checked)
    {
        //Ako smo odabrali prvi radioButton, racunamo ukupnu cenu
        ukupno = broj * 140;
        label2.Text = "Odabrali ste tresnje i ukupan racun iznosi: " + ukupno + "dinara";
    }
    else if (radioButton2.Checked)
    {
        //Ako smo odabrali drugi radioButton, racunamo ukupnu cenu
        ukupno = broj * 120;
        label2.Text = "Odabrali ste jagode i ukupan racun iznosi: " + ukupno + "dinara";
    }
    else if (radioButton3.Checked)
    {
        //Ako smo odabrali treci radioButton, racunamo ukupnu cenu
        ukupno = broj * 135;
        label2.Text = "Odabrali ste banane i ukupan racun iznosi: " + ukupno + "dinara";
    }
    else if (radioButton4.Checked)
    {
        //Ako smo odabrali cetvrti radioButton, racunamo ukupnu cenu
        ukupno = broj * 85;
        label2.Text = "Odabrali ste pomorandze i ukupan racun iznosi: " + ukupno + "dinara";
    }
}  
      

Слика 7.69. Покренут програм

Пример 3. Направити програм који садржи четири pictureBox-а. четири checkBox-а, који су сместени у један GroupBox, два radioButton-а који су сместени у други GroupBox, један textBox, и две labele-е. Чекирањем checkBox-а бирамо одећу коју желимо да поручимо, radioButton служи да одаберемо мушки или женски модел и преко textBox-а уносимо величину која нам треба (S/M/L).

Решење :

Слика 7.70. Изглед форме пре покретања програма

Притиском на дугме "Poruci", u label-и се исписује одговарајућа порука кориснику.

Код који нам је неопходан да би наш програм радио:

private void button1_Click(object sender, EventArgs e)
{
    string velicina = textBox1.Text;
    if (radioButton1.Checked)
    {
        //Ako smo odabrali prvi radioButton, biramo zensku garderobu
        string s = "Narucili ste: " + '\n';
        if (checkBox1.Checked)
            //Ako smo odabrali prvi checkBox
            s = s + "zensku majcu velicine "+ velicina + '\n';
        if (checkBox2.Checked)
            //Ako smo odabrali drugi checkBox
            s = s + "zenski sorc velicine "+ velicina + '\n';
        if (checkBox3.Checked)
            //Ako smo odabrali treci checkBox
            s = s + "zenske pantalone velicine "+ velicina + '\n';
        if (checkBox4.Checked)
            //Ako smo odabrali cetvrti checkBox
            s = s + "zensku jaknu velicine "+ velicina + '\n';
        label2.Text = s;
    }
    if (radioButton2.Checked)
    {
        //Ako smo odabrali drugi radioButton, biramo musku garderobu
        string s = "Narucili ste: " + '\n';
        if (checkBox1.Checked)
            //Ako smo odabrali prvi checkBox
            s = s + "musku majcu velicine "+ velicina + '\n';
        if (checkBox2.Checked)
            //Ako smo odabrali drugi checkBox
            s = s + "muski sorc velicine "+ velicina + '\n';
        if (checkBox3.Checked)
            //Ako smo odabrali treci checkBox
            s = s + "muske pantalone velicine "+ velicina + '\n';
        if (checkBox4.Checked)
            //Ako smo odabrali cetvrti checkBox
            s = s + "musku jaknu velicine "+ velicina + '\n';
        label2.Text = s;
    }
}
        

Слика 7.71. Изглед форме након покретања програма