MessageBox bei If-Abfragen

Bismark

Erfahrenes Mitglied
hallo Leute,

hab vollgendenden GUI Code geschrieben:
C++:
 if(rboPlayer1 ->Checked==true && String::Equals(tbxPlayer1 -> Text, ""))
				{
					MessageBox::Show("1Pleas write down any Names to the empty boxes", "NAME ERROR");
				}

				else if(rboPlayer2 ->Checked==true && String::Equals(tbxPlayer1 -> Text, "")|| tbxPlayer2 -> Text == " ")
					{
						MessageBox::Show("2Pleas write down any Names to the empty boxes", "NAME ERROR");
					}
					else if(rboPlayer3 ->Checked==true && String::Equals(tbxPlayer1 -> Text, "")|| String::Equals(tbxPlayer2 -> Text, " ")|| String::Equals(tbxPlayer4 -> Text, ""))
						{
							MessageBox::Show("3Pleas write down any Names to the empty boxes", "NAME ERROR");
						}
					 else if(rboPlayer4 ->Checked==true &&String::Equals(tbxPlayer1 -> Text, "")|| String::Equals(tbxPlayer2 -> Text, "") || String::Equals(tbxPlayer3 -> Text, "")|| String::Equals(tbxPlayer4 -> Text, ""))
						{
							MessageBox::Show("4Pleas write down any Names to the empty boxes", "NAME ERROR");
						}
						else 
							{
								tabControl1 ->SelectTab(2);
							}

Das Problem ist, wenn ich den Radiobutton rboPlayer1 drücke und einen Namen eingebe kommt die Fehlermeldung "3Pleas write down any Names to the empty boxes", obwohl es nichts mit dem rboPlayer3 zu tun hat.:suspekt:

Nützliches: Wen ich z.B. rboPlayer3 drücke erscheinen die Textboxen tbxPlayer1, tbxPlayer2, tbxPlayer3. Und wenn Ich den rboPlayer1 drücke erscheint die Textbox tbxPlayer1.

Kann mir irgendjemand helfen?:-(

Wäre sehr dankbar.
 
Zuletzt bearbeitet:
Moin,

was genau sind "rboPlayer" und "tbxPlayer" :confused:
Was sagt denn Dein Debugger dazu :confused:

Ich würde vermute, dass irgendwelche Variablen nicht richtig gesetzt/initialisert sind !

Gruß
Klaus
 
Hallo Bismark,

mal davon ab, dass der Code schon für die paar Zeilen recht unübersichtlich ist, fehlen einige Informationen wie z.B. zu welchem Zeitpunkt kommst Du an diese Stelle des Codes? Reagierst Du auf ein Event oder, oder, oder ...
Genauso könnte man sich mehr darunter vorstellen, wenn Du auch beschreibst, was die restlichen Variablen darstellen sollen oder machen.
In Deinen if-Abfragen ist mir aufgefallen, dass Du z.B. mit ...
Code:
String::Equals(tbxPlayer1 -> Text, "")
... prüfst, ob der String leer ist. Dies kann man besser mit einem getrimmten (wenn man das mal so eindeutschen darf ;) ) String oder noch besser mit der Ermittlung der Länge eines Strings machen (auch erst nach trim).
Wenn Du mit Qt arbeitest (sieht mir danach aus), kann man sogar fragen, ob der String empty() ist.
Sind aber wie gesagt nur wage Vermutungen mangels ausreichender Informationen ...

MfG
TheBadDwarf
 
Huargs.

In deiner Abfrage für Player 3 hat sich ein Leerzeichen im leeren String eingeschlichen:

String::Equals(tbxPlayer2 -> Text, " ")

soll

String::Equals(tbxPlayer2 -> Text, "" )

sein.

Please mit e hinten dran!
 
Zurück