book-openComboBox

ComboBox combină un câmp text cu o listă derulantă. Utilizatorul poate fie alege o valoare din listă, fie (opțional) introduce una nouă. Este controlul potrivit când ai un set finit de valori cunoscute — departamente, categorii, statusuri.

Popularea cu valori

Varianta simplă — valori fixe adăugate în cod:

cmbDepartament.Items.Add("IT");
cmbDepartament.Items.Add("HR");
cmbDepartament.Items.Add("Financiar");
cmbDepartament.Items.Add("Vânzări");

// Sau cu AddRange pentru mai multe valori dintr-o data
cmbDepartament.Items.AddRange(new string[] { "IT", "HR", "Financiar", "Vânzări" });

Varianta cu DataSource — pentru liste din colecții sau enumerații:

// Din array
cmbDepartament.DataSource = new string[] { "IT", "HR", "Financiar", "Vânzări" };

// Din enum
cmbDepartament.DataSource = Enum.GetValues(typeof(Departament));

Popularea se face în Form_Load, nu în constructor, pentru că controalele sunt disponibile și formularul este gata de afișat.

📸 SCREENSHOT: ComboBox deschis (lista derulantă vizibilă) cu valorile departamentelor listate. Arată cum arată atât starea închisă cât și cea deschisă.

Controlează dacă utilizatorul poate introduce valori libere sau doar alege din listă:

Pentru departamente, DropDownList este alegerea corectă — nu vrem valori libere introduse de utilizator.

Selectarea și citirea valorii

La precompletarea câmpurilor în modul editare, atribuim direct valoarea string:

Evenimentul SelectedIndexChanged

Se declanșează când selecția se schimbă. Util pentru filtrare sau pentru a actualiza alte controale în funcție de selecție:

📸 SCREENSHOT: Fereastra principală cu cmbFiltruDepartament selectat pe „IT" și DataGridView-ul afișând doar angajații din departamentul IT. Arată că filtrarea funcționează în timp real.

Last updated