Se si desidera un valore e una didascalia (etichetta), creare una classe appropriata
class ComboItem
{
public int ID { get; set; }
public string Text { get; set; }
}
Nel ComboBox si quindi impostare la proprietà DisplayMember
al Text
e la ValueMember
proprietà ID
.
Il DropDownStyle
del ComboBox ne determina il comportamento. DropDownStyle.DropDown
consente all'utente di digitare testo. Con DropDownStyle.DropDownList
l'utente può solo selezionare elementi dall'elenco.
si può riempire il ComboBox
in questo modo:
myCombo.DataSource = new ComboItem[] {
new ComboItem{ ID = 1, Text = "One" },
new ComboItem{ ID = 2, Text = "Two" },
new ComboItem{ ID = 3, Text = "Three" }
};
Il DataSource
può essere qualsiasi tipo di enumerabile.
È possibile recuperare l'ID selezionato come questo
int id = (int)myComboBox.SelectedValue;
Si noti che è possibile aggiungere qualsiasi tipo di elemento da ComboBox. Se non si specificano le proprietà DisplayMember
e ValueMember
, il ComboBox utilizza il metodo ToString
dell'oggetto per determinare il testo visualizzato ed è possibile recuperare l'elemento selezionato (valore non selezionato) tramite la proprietà SelectedItem
.
Se si aggiungono oggetti di questo tipo ...
class Person
{
public int PersonID { get; set }
public string FirstName { get; set; }
public string LastName { get; set; }
public override string ToString()
{
return FirstName + " " + LastName;
}
}
... al ComboBox, è possibile recuperare l'elemento selezionato come questo
Person selectedPerson = (Person)myComboBox.SelectedItem;
int personID = selectedPerson.PersonID;
Il ComboBox visualizza il primo e cognomi delle persone.
Il titolo e la descrizione sono confuse. Questo non ha nulla a che fare con i menu. –
La tua migliore scommessa è quella di riempire gli elementi con le stringhe che vuoi visualizzare, quindi nel codice hai solo delle condizioni basate su ciò che l'utente ha selezionato. – Baddack