Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

ListBox

ListBox компонента обезбеђује приказивање листе ставки. Може садржати само


текстуалне чланове. Корисник може означити једну или више ставки из листе. ListBox
креирамо двоструким кликом на иконицу ListBox-а у ToolBox-у. Када смо додали ListBox
можемо мењати његову величину и положај у форми помоћу миша и подешавати његове
особине у Properties прозору.

Слика 7.32. Форма са ListBox-ом

Слика 7.31. Прозор Properties

Пример 1. Када у програму Word одаберемо опцију Find and Replace, и картицу Go To,
можемо видети у датом прозору пример ListBox-а.
Слика 7.33. Find and Replace

Подешавање
Позиција, висина, ширина и величина
Особина Location – позиција, подразумева координате горње, леве тачке наше компоненте у
односу на форму. Особине Left и Top одређују локацију у односу на горњи леви угао форме,
тј. удаљеност од леве и горње ивице форме, датим редом. Size особина одређује величину
компоненте. Место особине Size можемо користити особине Width и Height.
Динамички начин подешавања датих особина:

//Kreira novi ListBox


ListBox listBox1 = new ListBox();
//Pozicija ListBox-a
listBox1.Location = new Point(25, 25);
//Velicina ListBox-a
listBox1.Size = new Size(245, 200);
//Dodaje kreirani ListBox na formu
Controls.Add(listBox1);
Слика 7.34. Форма након подешавања
Name
Name особина означава јединствено име ListBox-а. Помоћу осбине Name приступамо датој
компоненти у коду. Помоћу наредног кода можемо поставити назив тј. особину Name датог
ListBox-а:

listBox1.Name = "ListBox1";
Font
Font особине представљају Font текста RadioButton-а. Ако кликнемо на Font особине у
Properties прозору видећемо опције као што су Font Name, Size и друге. За исте особине
можемо користити и дати код:

listBox1.Font = new Font("Georgia", 20);


BackColor и ForeColor
BackColor и ForeColor особине се користе за подешавање боја позадине и текста који је
наведен у ListBox-у. Ако кликнемо на ове особине у прозору Properties, појавиће нам се на
екрану Color Dialog за одабир боје. Дате особине можемо подесити и помоћу кода:

listBox1.BackColor = Color.Red;
listBox1.ForeColor = Color.Blue;
Такође можемо подесити и стил оквира нашег ListBox-а коришћењем BorderStyle особина.
BorderStyle особина има три вредности: FixedSingle, Fixed3D и None.
Чланови ListBox-а
Особина Items се користи за додавање и обраду чланова ListBox-а. Чланове можемо додати у
ListBox ако у Properties прозору кликнемо на Collections у реду Items. Када кликнемо на
Collections појавиће се прозор Strings Collection Editor, у којем ћемо моћи да исписујемо
стрингове. Свака линија додана овој колекцији постаће један члан ListBox-а. Чланове ListBox-а
можемо додати и помоћу кода на следећи начин:
listBox1.Items.Add("Miki");
listBox1.Items.Add("Mini");
listBox1.Items.Add("Paja");
listBox1.Items.Add("Pluton");

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


SelectionMode
Ова особина има четири вредности и односи се на то колико чланова можемо из листе
одабрати. Могуће вредности су:
None - ова особина не дозвољава одабир ни једног члана листе,
One - ова особина дозвољава одабир једног члана листе,
MultiExtended - ова особина дозвољава одабир више чланова листе, превлачењем курсора
миша,
MultiSimple - ова особина дозвољава одабир више чланова листе, појединачним кликом на
сваког члана.
HorizontalScrollbar
Oва особина нам омогућава да додамо хоризонтални клизач када су нам чланови предугачки.
Користи се за веће примерке ListBox-а, а у супротном га треба избегавати. Подразумеване
вредности су: True за постављање клизача, и False за не постављање клизача.
Означени члан ListBox-а
За демонстрацију преузимања и коришћења селектованог члана требаће нам по један ListBox,
дугме и лабела. Кликом на дугме текст лабеле ће се састојати од текста означеног елемента
ListBox-а. Изглед наше форме:
Слика 7.36. Форма

Потребан код:

private void button1_Click(object sender, EventArgs e)


{
label1.Text = listBox1.Text;
}
Након покретања програма и извршења изглед форме може бити:

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


Напомена: У случају да не означимо ни један елемент у ListBox-у, а кликнемо на
дугме "Прикажи одабрано" неће нам се појавити никакав текст на месту лабеле јер ће у том
случају бити преузет празан стринг.

Слика 7.38. Изглед форме уколико се не селектује ниједан елемент у ListBox-у

Налажење чланова
За демонстрацију налажење чланова ListBox биће нам потребни по један ListBox, TextBox,
дугме и лабела. Наредним кодом показаћемо како кликом на дугме можемо проћи кроз
ListBoxи селектовати стринг задат у TextBox-у ако је он уопште садржан у ListBox-у, у
супротном у лабели ћемо исписати да "Дати текст не постоји у ListBox-у".

private void button1_Click(object sender, EventArgs e)


{
//Ni jedan clan listBox-a nije selektovan
listBox1.ClearSelected();
//Ako nadje u listBox-u text naveden u textBox-u index je nenegativan broj
//U suprotnom je negativan broj
int index = listBox1.FindString(textBox1.Text);
if (index < 0)
{
//Ispise tekst obavestenja
label1.Text = "Dati tekst ne postoji u ListBox-u.";
//Isprazni textBox za naredno trazenje
textBox1.Text = String.Empty;
}
else
{
//Selektuje nadjeni tekst u listBox-u
listBox1.SelectedIndex = index;
//Isprazni textBox za naredno trazenje
textBox1.Text = String.Empty;
}
}

Изглед наше форме:

Слика 7.39. Форма након измена


Пример 2. Направимо програм у којем ћемо имати listBox, једно дугме, три лабеле и
један TextBox. Програм треба да за унету цену, рачуна цену са попустом, при чему су
попусти дати у listBox-у и корисник може сам да изабере колики попуст жели.
Решење :
Слика 7.40. Правимо форму облика Слика 7.41. Преименујемо компоненте

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

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

private void button1_Click(object sender, EventArgs e)


{
//U promenljivu cena smestamo sadrzaj iz textBox-a
int cena = int.Parse(textBox.Text);
int popust;
int novacena;
//U promenljivu popust smestamo izabrani popust iz listBox-a
popust = Convert.TiInt32(listBox1.SelectedItem);
//Racunamo novu cenu sa popustom i smestamo je u promenljivu novacena
novacena = (cena * (100 - popust))/100;
//Ispisujemo cenu sa popustom u labelu
label3.Text = "Cena sa popustom je: " + novacena.ToString(); + ".";
}

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

Пример 3. Написати програм који за унето име, презиме и име родитеља неке особе,
уписује у један listBox дато име и презиме као и средње слово, односно прво слово од
имена родитеља те особе. Такође, за унети град и поштански број, у посебан listBox
уноси се град, а у посебан поштански број. Дакле, имаћемо три listBox-а, четири
textBox-а, лабеле и једно дугме.
Решење :

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

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

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

private void button1_Click(object sender, EventArgs e)


{
string ime = textBox1.Text;
string prezime = textBox2.Text;
//Izdvajamo prvo slovo iz onoga sto je uneto u textBox3
string srednjeSlovo = (textBox3.Text).Substring(0,1);
//Dodajemo u listu ime, srednjeSlovo i prezime osobe
listBox1.Items.Add(ime + " " + srednjeSlovo + ". " + prezime);
//Postavljamo textBox-ove da budu prazni za sledeci unos
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
string s = textBox4.Text;
string grad, broj;
int pozicija;
char praznina = ' ';
//Trazimo indeks praznine, odnosno razmak izmedju postanskog broja i imena
grada
pozicija = s.IndexOf(praznina);
//Ako je broj manji od 0
if (pozicija < 0)
//Ispisujemo poruku o neispravnom unosu
MessageBox.Show("Neispravan unos!");
//Ukoliko je unos ispravan
else
{
//U promenljvu broj smestamo sve sto je od razmaka pa na dalje,
odnosno postanski broj
broj = s.Substring(pozicija + 1);
//Zatim to smestamo u listBox2
listBox2.Items.Add(broj);
//A u promenljivu grad smestamo sve od pocetka, pa do razmaka, odnosno
pozicije
grad = s.Substring(0,pozicija);
//Zatim to smestamo u listBox3
listBox3.Items.Add(grad);
//Postavljamo textBox4 da bude prazan za sledeci unos
textBox4.Text = "";
}
}

Слика 7.45. Покренемо програм Слика 7.46. Након клика на дугме

Можемо додати колико год желимо особа у listBox-ове:


Слика 7.47. Изглед форме након уношења особа

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

Слика 7.48. Прозор Properties


Пример 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.1. Растојање између две тачке


Слика 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. Изглед форме након покретања програма

You might also like