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-ова.
Решење :