Combobox value-Wert festlegen?

Plavix

Grünschnabel
Hi,

gibt es unter C# eine Mlglichkeit wie bei HTML zb. bei einer Combobox einen value-Wert an zugeben?

Ich habe zb. Peter, Max, Luise zur Auswahl und möchte jeden dieser Namen einen Wert (2, 3, 1) zu weisen und dann damit weiter arbeiten.

So einfach wie unter HTML scheint dies aber nicht zu gehen :(
 
Hi

Ich geh mal davon aus, du nutzt kein DataBinding.
Wenn der "Value" zu einem Item eine fortlaufende Nummer ist, kannst ganz einfach das Property SelectedIndex nutzen.
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindex.aspx

Wenn die Nummer ein komplexerer Wert ist, musst du dir eine kleine Klasse schreiben, bei welcher du die Methode ToString überschreibst und den Wert zurück gibst, welcher angezeigt werden soll. Den anderen kannst du in einem Property halten
C#:
class foo
{
	foo(int val, string disp)
	{
		this.val = val;
		this.disp = disp;
	}

	int val;
	string  disp;
	
	internal int Value
	{
		get {return val;}
	}

	public override string ToString()
	{
		return disp;
	}
}

[...]

comboBox.Items.Add(new foo(1, "tutorials.de");

[...]
foo item = comboBox.SelectedItem as foo;

Die Propertys ValueMember und DisplayMember sind relevant, wenn du DataBinding nutzt.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.displaymember.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.valuemember.aspx
 
Da ich kein DataBinding nutze und auch keine fortlaufende Werte/Zahlen, habe ich mich an deinen Beispiel versucht. Nur bekomme ich da immer den Fehler:
Fehler 1 "WindowsFormsApplication1.Form1.foo" enthält keinen Konstruktor, der 2-Argumente akzeptiert.

Die fehlende Klammer ) auf Zeile 25 habe ich schon mit ergänzt.
 
Ich werde da jetzt erstmal weg lassen und wenn ich etwas mehr von Materie verstehe noch mal probieren, trotzdem danke auch allen.

@ Nico, trotz public oder internal kommt der Fehler weiterhin. (bei Zeile 25)
 

Neue Beiträge

Zurück