Ein Problem mit RadioButtons
-
Hallo,
ich habe 4 radioButtons(radioButton320, radioButton640, radioButton1024 und radioButtonMaximal) Die Eigenschaft "Checked" steht bei allen auf "false".
Mit welcher Befehlszeile, schafft man es, dass der aktuelle Button markiert bleibt?
if(radioButton320->Checked==true)
redioButton320->Checked=true;
hilft leider nicht. Es wird kein syntaktischer Fehler gemeldet, doch markiert bleibt keiner. Vielleicht kann mir jemand helfen!
Gruß Tabit
-
Hi,
was meinst du mit markiert bleibt? Wenn alle auf false stehen ist auch keiner
eingeschaltet.
Klickst du auf einen Button und die Markierung verschwindet gleich wieder?Deine if-Abfrage bringt natürlich nichts. Schau dir das nochmal an.
-
Wenn ich radioButton640 markiere, bleibt er markiert. Dann klicke ich auf "Übernehmen"(Button) Der Dialog schließt sich und das Spielfeld öffnet sich und hat die eingestellte Größe 640*480. Beim nächsten Öffnen ist die Markierung weg. Sie soll aber bleiben! Hier Code für das Formular "einstellungenDialog"
//die Methode liefert die ausgewählten Werte
Point liefereWert() {
Point rueckgabe;
if (radioButton320->Checked == true)
rueckgabe = Point(320,200);
if (radioButton640->Checked == true)
rueckgabe = Point(640,480);
if (radioButton1024->Checked == true)
rueckgabe = Point(1024,768);
if (radioButtonMaximal->Checked == true)
rueckgabe = Point(Screen::PrimaryScreen->Bounds.Width, Screen::PrimaryScreen->Bounds.Height);
return rueckgabe;
private: System::Void spielfeldToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Point neueGroesse;
einstellungenDialog ^neueWerte = gcnew einstellungenDialog();
//wenn der Dialog über die "OK"-Schaltlfäche beendet wird
if (neueWerte->ShowDialog() == ::DialogResult::OK) {
//die neue Größe holen
neueGroesse = neueWerte->liefereWert();
//den Dialog wieder schließen
neueWerte->Close();
//das Formular ändern
Hier ein gescheiterter Versuch ///if(neueGroesse==Point(320,200))
///neueWerte->radioButton320->Checked=true;
this->Width = neueGroesse.X;
this->Height = neueGroesse.Y;
//neu ausrichten
this->Left = (Screen::PrimaryScreen->Bounds.Width - this->Width) / 2;
this->Top = (Screen::PrimaryScreen->Bounds.Heigprht - this->Height) / 2;
Das ist Code aus Form1
-
Da du ja immer wieder den Einstellungsdialog neu erzeugst, mußt du dir halt in einer Membervariablen den aktuellen Zustand merken und vor dem ShowDialog dann den entsprechenden RadioButton auf "checked" setzen.
Hinweis: mach "neueGroesse" zu einer Membervariablen deiner Klasse...
P.S. Bei nächsten Post von Code bitte Code-Tags benutzen!