2016-12-07 5 views
0

Ich habe eine winforms App, die eine tabcontrol hat und in jeder Registerkarte einige radiobuttons der Code funktioniert, aber es gibt ein Problem. Wenn ich auf eine Registerkarte gehen und überprüfen Sie eine radiobutton und nach auf eine andere Registerkarte gehen und überprüfen Sie eine andere radiobutton die vorherige Schaltfläche bleibt ausgewählt. Gibt es eine Möglichkeit, wenn ich eine Radiobutton auf einer anderen Registerkarte überprüfen die App die vorherige Schaltfläche auf der anderen Registerkarte deaktiviert? Der Code ich benutze ist:Radiobutton in verschiedenen Tabs bleiben überprüft

  if (!radioButton1.Checked && !radioButton2.Checked && !radioButton3.Checked && !radioButton4.Checked) 
      { 
       MessageBox.Show("Please select an option!", "Warning"); 
       return; 
      } 
      else if (radioButton1.Checked) 
      { 
       build build = new build("@../Images/x1.jpg", "definition", "c1"); 
       build.ShowDialog(); 
} 
      else if (radioButton2.Checked) 
      { 
       build build = new build("@../Images/x2.jpg", "definition2","c2"); 
       build.ShowDialog(); 
      } 

etc ...

Vielen Dank im Voraus,

Antwort

0

Wenn ich Ihre Frage richtig verstanden, die Sie gerade alle anderen Auswahlknöpfe deaktivieren wollen? Sie können sie einfach deaktivieren:

radioButtonX.Checked = False; 
0

Schauen Sie sich die Ereignisse für die RegisterkarteControl an. Machen Sie ein Ereignis für den tabPageX.Enter und löschen Sie den Radio-Button (radioButtonX.Checked = false) in diesem.

Wirklich, es sei denn, dies ist eine Wegwerf-Test-Software, würde ich empfehlen, in eine anspruchsvollere Architektur wie Model View Presenter zu suchen. (für was es wert ist).

+0

Hallo, Danke für die Hilfe. Ich habe hinzugefügt: 'private void tabControl1_TabIndexChanged (Objekt Absender, EventArgs e) { radioButton9.Checked = false; } ' Aber immer noch nicht funktioniert, ami etwas fehlt? Sorry, aber wie Sie herausfinden, ich bin ein Noob in C# – septaug

+0

Keine Sorge. Ich denke, ich verstehe dein Problem jetzt besser, wenn ich darüber nachdenke. Für jeden tabIndex können Sie (in Ihrem Beispiel) tabPage1_Leave verwenden (das aufgerufen wird, wenn Sie zu einem anderen Tab wechseln), um den Radiobutton zu deaktivieren. Auf diese Weise haben Sie nicht die Schaltfläche aktiviert, wenn Sie zu es wechseln, da Sie es deaktivieren, bevor Sie es verlassen. Ist das sinnvoll? – cowboydan

Verwandte Themen