ComboBox

ComboBox представља компоненту која је комбинација TextBox-a и ListBox-a. У неким случајевима само један члан листе је приказан у ComboBox-у, а остали садржани чланови могу се приказати у падајућој листи, а у неким је приказано више њих од једном. Корисник може да куца опцију коју жели у ComboBox-у, или да је селектује ако је има међу понуђеним.

Слика 7.48. Прозор Properties Слика 7.49. Форма са ComboBox-ом

Пример 1. За дату компоненту при снимању Word документа примери су поља у прозору Save As, File name и Save as type.


Слика 7.50. Save As

Подешавање ComboBox-а


ComboBox чланови

Items особина се користи за додавање и рад са члановима ComboBox-a. Ми можемо додати чланове ComboBox–a у прозору Properties, кликом на поље (Collections) у врсти Items. Када кликнемо на поменуто поље, појавиће се прозор String Collection Editor, где можемо укуцати стрингове. Свака линија стринга која буде додата постаће члан ComboBox-a.


Слика 7.51. String Collection Editor

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

За подешавање неких основних особина као што су: Name, Location, Height, Width and Size, Font, Background and Foreground, важе слична правила као и за претходне компоненте.
Динамички начин подешавања датих особина:

//Kreira ComboBox
ComboBox comboBox1 = new ComboBox();
//Odredjuje polozaj ComboBox-a
comboBox1.Location = new Point(10, 10);
//Dodeljuje ime ComboBox-u 
comboBox1.Name = "comboBox1"; 
//Dodeljuje velicinu ComboBox-u 
comboBox1.Size = new Size(200, 200);
//Dodeljuje boju polja ComboBox-a 
comboBox1.BackColor = Color.Red;
//Dodeljuje boju teksta ComboBox-u
comboBox1.ForeColor = Color.Yellow;
//Dodaje ComboBox formi
Controls.Add(comboBox1);

DropDownHeight и DropDownWidth

Ми можемо контролисати величину падајућег дела ComboBox-a. DropDownHeight и DropDownWidth oсобине представљају висину и ширину падајућег дела у пикселима, датим редом. Ако су DropDownHeight и DropDownWidth особине мање од вредности Width и Height форме, неће бити могуће за примену. Ако се неки од чланова не уклопи по величини са падајућом листом, појавиће се scrollbars.

DropDownStyle

Особина DropDownStyle за постављање стила може узимати једну од следеће три вредности:
Simple - Листа је увек видљива и могуће је унети текст у део предвиђен за то.

Слика 7.52. Simple

DropDown - Листа се приказује кликом на стрелицу која показује на доле и могуће је унети текст у део предвиђен за то.

Слика 7.53. DropDown


DropDownList - Листа се приказује кликом на стрелицу која показује на доле и није могуће директно унети неки текст

Слика 7.54. DropDownList

Сортирање чланова

Ако је опција Sorted постављена на true, чланови ComboBox-a биће сортирани. То се може урадити и помоћу наредног кода:

comboBox1.Sorted = true;

Налажење члана

Метода FindString користи се за налажење стринга или дела стринга у ComboBox-у.

Пример 2. Стринг из TextBox-a тражићемо у ComboBox-у, ако га нађемо биће означен, а у супротном појавиће се MessageBox са текстом „Trazeni clan nije nadjen.“.

Решење:

Додати у форму један ComboBox и унети његове чланове. Додати у форму TextBox и дугме.


Слика 7.55. Форма

Променимо назив дугмету у „Nadji“ и у делу за код који извршава клик на дугме унесимо следећи код:

private void button1_Click(object sender, EventArgs e) 
{ 
    //Primena pomenutog metoda za pretragu u comboBox1, trazimo tekst iz textBox1,
    //Ako ga nadje vrednost je (redni broj clana - 1), u suprotnom je -1
    int index = comboBox1.FindString(textBox1.Text);
    //Ispitujemo vrednost indexa 
    if (index < 0) 
    { 
        //Poruka ako nije nadjen dati string
	MessageBox.Show("Trazeni clan nije nadjen.");
        //Ispraznimo textBox1 za novu pretragu 
	textBox1.Text = String.Empty;
    } 
    else 
    { 
        //Selektujemo trazeni string
        comboBox1.SelectedIndex = index;
    } 
} 

Пример 3. Направимо програм у којем ћемо имати comboBox, једно дугме и три лабеле. Програм треба да за одабрани број дана, рачуна цену летовања, при чему се зна цена за једно ноћење.

Решење :


Слика 7.56. Правимо форму овог облика Слика 7.57. Преименујемо компоненте
Притиском на дугме "Izracunaj", u label-и се исписује одговарајућа порука кориснику.

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

private void button1_Click(object sender, EventArgs e)
{
    int cenaNocenja = 1150;
    //U promenljivu brDana smestamo ono sto smo odabrali u comboBpx-u
    int brDana = Convert.TiInt32(comboBox1.SelectedItem);
    int ukupnaCena;
    //Racunamo ukupnu cenu 
    int ukupnaCena = brDana * CenaNocenja;
    //Ispisujemo u labelu kolika je ukupna cena za ceo aranzman 
    label3.Text = "Vas ceo aranzman za " + brDana + " dana ce kostati " + ukupnaCena + " dinara.";
} 
      
Покренемо програм:
Слика 7.58. Изглед форме након покретања програма

Пример 4. Направити програм који рачуна растојање две тачке у простору, чије се координате бирају преко одговарајућих comboBox-ова.

Решење :


Слика 7.59. Правимо форму овог облика Слика 7.60. Преименујемо компоненте

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

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

private void button1_Click(object sender, EventArgs e)
{
    //Smestamo u promenljive,koje predstavljaju koordinate tacaka,
    //Ono sto smo odabrali iz comboBox-ova  
    int x1 = Convert.ToInt32(comboBox1.SelectedItem);
    int y1 = Convert.ToInt32(comboBox2.SelectedItem);
    int x2 = Convert.ToInt32(comboBox3.SelectedItem);
    int y2 = Convert.ToInt32(comboBox4.SelectedItem);
    double rastojanje;
    //Racunamo rastojanje izmedju tacaka pomocu odredjene formule  
    rastojanje = Math.Sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );
    //Ispisujemo u labelu rezultat 
    label6.Text = "Rastojanje tacaka A i B je: " + rastojanje + " ."
} 

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