ListBox auswahl überprüfen

Fridulin

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem, ich möchte gerne überprüfen von 3 ListBox`en ob eine auswahl getroffen wurden oder nicht.
Ich habe folgenden Code:
Code:
string allesok = null;
if (speichern != null)
{
string tagbox = null;
string monatbox = null;
string jahrbox = null;
string namebox = null;
//tagbox = tag.SelectedItem.ToString(); 
if (tag.SelectedItem.ToString() != null)
{
tagbox = tag.SelectedItem.ToString();
}
//monatbox = monat.SelectedItem.ToString();
//jahrbox = jahr.SelectedItem.ToString();
namebox = name.Text;
//MessageBox.Show("Tagbox" + tagbox);

if (tagbox == null)
{
MessageBox.Show("ups, bitte den GeburtsTAG eingeben!");
allesok = "nichtok";
}
if (monatbox == null)
{
MessageBox.Show("ups, bitte den GeburtsMONAT eingeben!");
allesok = "nichtok";
}
if (jahrbox == null)
{
MessageBox.Show("ups, bitte das GeburtsJAHR eingeben!");
allesok = "nichtok";
}
//else allesok = null; MessageBox.Show(allesok);
}
if(allesok == null)
{
//......tu das wenn alles gesetzt wurde
//....
}

So solte das ja eigentlich Funktionieren, aber wenn ich nichts eingebe dann tritt ein Fehler auf: .... Objekt reference not set to an instance objekt
Also nur wenn ich was eingebe dann Funktioniert das.

Kann mir einer Helfen? Gibt es nicht vielleicht irgendwie etwas "if on set" der LisBox oder etwas ähnliches?

Grüße
 
hi,
die Zeile
Code:
if(tag.SelectedItem.ToString() != null)
ist sehr ungünstig gewählt, da du durch die ToString() Methode ja schon auf
das Objekt zugreifst obwohl es ja evtl. null ist.

Prüfe vorher ob überhaupt ein Item selektiert ist:

Code:
if( tag.SelectedItems.Count > 0 )
{
 // es ist was selektiert
}

Wenn du weisst das ein selektiertes Objekt existiert, kannst du den Text auslesen.
 
Hi,

Dankeschön genau sowas suche ich, ich hab nur ein kleinen Fehler gemacht, es ist keine ListBox sonderen eine ComboBox. Tut mir leid das war mein Fehler, deswegen sagt er jetzt Fehler bei deiner Zeile:
does not contain a definition for 'SelectItems'

Kannst du mir dabei Helfen!

Grüße und Danke
 
Hi,
versuchs doch mal mit:
Code:
tag.SelectedText // anstatt tag.SelectedItem
ansonsten gib mal die exakte Fehlermeldung an.
 
Hi,

Also damit Funktioniert es leider auch nicht.
Fehlermeldung bei SlectedText:
Code:
if (tag.SelectedText.Count > 0)

Code:
"(312,5): error CS0117: 'string' does not contain a definition for 'Count'"
und bei den erstenversuch:
Code:
if( tag.SelectedItems.Count > 0 )

Code:
("(313,5): error CS0117: 'System.Windows.Forms.ComboBox' does not contain a definition for 'SelectedItems'"
Grüße


PS: Kann erst nachher wieder Antworten!
 
Zuletzt bearbeitet:
hab mich wohl falsch ausgedrückt.
Ich meinte du sollst den Text der Combobox mit:
Code:
string cmbText = tag.SelectedText;
abfragen.

Code:
if( tag.SelectedText == String.Empty )
{
 // Text der Combobox ist leer
}
 
Hi,

Also mit:

Code:
if( tag.SelectedText != String.Empty )
{
// monatbox = monat.SelectedItem.ToString();
MessageBox.Show("Tagtagbox");
}

Funktioniert es leider auch nicht, er kommt garnmicht erst in der if Anweisung rein, egal was ich da eingebe.

Hast du vielleicht ncoh eine andere Idee?

Grüße und Danke
 
Hi,

Kann mir keiner Helfen bei meinen Problem? Ich will nur die CommonBox auf einer Eingabe überpfüen, daß wenn nichts ausgewählt ist eine MessageBox erscheint.

Währe Dankbar!

Grüße
 
Hier mal ein anderer Vorschlag.
Initialisiere deine Combobox mit einem Defaultwert und untersuche nachher, ob der markierte Text nun leer oder der Defaultwert ist. Wenn ja, ist keine Angabe getätigt worden oder einfach nur der Defaultwer gelöscht.

Ich mache das zum Beispiel oft mit dem Init Wert <insert XY Value here>
Und frage später ab, ob der String mit "<" beginnt oder ob er "" ist.

Ginge das bei dir ?

MFG JJB

_
 
Hi,


danke für deine Antwort. Ja sowas gänge bei mir. Nur wie setze ich den Wert. Ich habe es mit
Code:
 tag.SelectedText = "test";
Probiert aber leider Funktiniert das nicht so er zeigt es einfach nicht an und wenn ich den Inhalt per Programm eintrage (SharpDevelope) dann kommt wieder die gleiche Fehlermeldung, das er nicht gesetzt ist und somit keine if Funktion Funktioniert.

Grüße

Edit:

Und komischerweise, ist es egal ob ich etwas Auswähle der Box der String ist immer leer, also mit:

Code:
if( tag.SelectedText == String.Empty )


Da ist die Bedinnung immer erfüllt, aber wenn ich mit einer MessageBox mir den Inhalt anzeigen lasse ist der Inhalt Korrekt.

Komisch
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück