Autor Beitrag
P584
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 03.02.10 15:08 
Hallo,

Bin noch Anfänger und habe folgende Frage: Wie kann ich in einer if-Abfrage prüfen, welche Option der Combobox gewählt wurde?

Wenn ich also in der Combobox Achim, Peter und Jürgen zur Auswahl habe, will ich also sagen "wenn Jürgen ausgewählt wurde, dann mache dies und das"

Ich hoffe, ihr versteht was ich meine :P

Gruß Paul
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Mi 03.02.10 15:42 
Hi,

die ComboBox hat die nette Eigenschaft SelectedItem in der das wie der Name schon sagt ausgewählte Item abgefragt werden kann. Wirst halt noch in das entsprechende Format konvertieren müssen mit dem du die Combobox gefüllt hast (Meist eher Strings).

ausblenden C#-Quelltext
1:
2:
3:
if(comboBox.SelectedItem.ToString() == "Achim")
  Console.WriteLine("Achim wurde ausgewählt.")
else if ...
P584 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 03.02.10 16:07 
Sorry, aber wie wäre dass dann z.B. wenn die Combobox "cbb_1" hieße?

wenn ich z.B.
ausblenden C#-Quelltext
1:
if (comboBox.SelectedItem.ToString(cbb_1.Text) == "1")					


eingebe, kommt die Fehlermeldung, dass comboBox im aktuellen Kontext nicht vorhanden sei.

:oops:
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 03.02.10 16:36 
Hallo und :welcome:

An dieser Stelle musst du natürlich den Namen deiner ComboBox verwenden.

Aber Namen wie cbb_1 gehören sowieso verboten; da weißt in spätestens 14 Tagen auch du nicht mehr, wozu sie gut ist. Siehe .NET Richtlinien für Namen.

Es gibt als Ereignisse, die das prüfen, SelectedIndexChanged und SelectedValueChanged. Als Eigenschaften, die zur Prüfung verwendet werden können, gibt es SelectedIndex, SelectedItem, SelectedText. Letzteres ist bereits ein String, muss also nicht konvertiert werden.

Allgemeine Hinweise
Ein Ereignis liefert immer den sender mit, der es ausgelöst hat. Damit kann man ihn immer benutzen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void NameSelecting_SelectedIndexChanged(object sender, EventArgs e) {
  ComboBox box = sender as ComboBox;
  if (box != null) {
    MessageBox.Show("Ausgewählt wurde " + box.SelectedText);
  }
}

In den meisten Fällen kennt man das Control, das man auswerten will; aber sehr oft ist es nützlich, den sender auf diese Weise bestimmen zu können.

Ich empfehle gerade Anfängern, von vornherein selbst in der SDK-Doku/MSDN/Hilfe zu blättern, welche Eigenschaften/Methoden/Ereignisse angeboten werden. Wähle dazu "Informationen zur Xx-Klasse" und "Alle Member": das liefert viele Hinweise und Beispiele. Auf diese Weise gewinnst du selbst einen Einblick in das, was mit NET möglich ist.

Gruß Jürgen
C#Einsteiger
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 22.04.11 15:06 
Hallo, ich habe irgendwie auch so ein Problem!

Fülle meine ComboBox.Items.Add("Januar");

bis Dezember.

dann möchte ich sie mit
if (comboBox1.SelectedItem.ToString() == "Januar")
und rufe die sachen ab was er dann erledigen soll sobald Januar ausgewäht wurde.

nur das ganze funktioniert irgendwie nicht bekomme immer einen Fehler!

Wer kann mir vielleicht helfen bin neueinsteiger!

MfG
C#Einsteiger
m-s
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149
Erhaltene Danke: 7

Win 10
C# (VS 2015)
BeitragVerfasst: Fr 22.04.11 21:38 
Bei mir geht das so.
Welchen Fehler bekommst Du denn genau?

_________________
Gruß Markus
xToast
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Fr 22.04.11 21:43 
Sicher das du den richtigen Namen der Combobox angibst? Ohne den Fehler tappen wir im dunkeln...
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 23.04.11 16:29 
Hallo user profile iconC#Einsteiger,

wenn der Benutzer noch kein Element ausgewählt hat, ist die Eigenschaft SelectedItem noch null und der Aufruf von ToString verursacht eine NullReferenceException. Ist das die Fehlermeldung, die du gemeint hast?

Du solltest also prüfen, ob SelectedItem null ist, bevor du es in einen String umwandeln lässt. :idea:

Grüße,
Yogu