Jag vill ha en dropdownlist som har ett item och ett värde. I asp.net så lägger man bara in ett "new listitem("test","test") men det verkar inte finnas när man ska göra detta i winforms. Det finns bara Combobox och den verkar inte kunna ta både ett item och ett value. Winforms Combobox kontroll kan innehålla vilken typ av objekt som helst. Så du kan skapa en klass innehållande godtycklig data och lägga till instanser av denna i listan. Kompletterar ovanstående med kodexempel (C#) eftersom jag inte hittar något annat kul att göra :-). Du kan t ex göra en ComboItem-klass enligt nedan :ListItem i winForms och dropdownlist
Finns det en lösning på detta.Sv: ListItem i winForms och dropdownlist
MSSv: ListItem i winForms och dropdownlist
<code>
public class ComboItem
{
private string mText="";
private object mValue=null;
public ComboItem(string Text,object Value)
{
mText=Text;
mValue=Value;
}
// Readonly properties, eftersom det blev mindre att skriva. Måste inte vara det...
public string Text { get { return mText; } }
public object Value { get { return mValue; } }
public override string ToString() { return mText; }
}
</code>
Använd klassen så här :
<code>
ComboItem item=new ComboItem("Per","123456-7890");
ComboBox1.Items.Add(item);
...
item=ComboBox1.SelectedItem as ComboItem;
if (item!=null)
MessageBox.Show(item.Value.ToString());
</code>
Som påpekats ovan så kan du dock lägga in vilket objekt av vilken typ som helst, så länge dess ToString()-metod returnerar den text som du vill visa i comboboxen...