2016-04-28 11 views
-2

Wie kann ich feststellen, ob eine Optionsschaltfläche aktiviert ist und etwas im Switch ausgeführt wird? Dies ist Teil meiner Code:Enum und RadioButtons

Dies ist in meiner Klasse Person.cs

public enum TypeTimer { Unlimited, Countdown, Limited} 

Das ist mein Schalter, wo ich die Funktionen gesetzt werden

public Person(TypeTimer s1) 
     { 
      switch (s1) 
     { 
      case TypeTimer.Unlimited: 
       (code here) 
       break; 

      case TypeTimer.Countdown: 
        (code here) 
        break; 
      case TypeTimer.Limited: 
        (code here) 
        break; 
      default: 
        break; 
     } 
     } 

Wie kann ich feststellen, ob geprüft = = wahr ist gleich enum begrenzt oder unbegrenzt oder countdown?

Dies ist in Form.cs

private void button1_Click(object sender, EventArgs e) 
     { 
      if (rbtnNormalTimer.Checked == true) 
      { 

      } 
      else if(rbtnCountDown.Checked == true) 
      { 

      } 
      else if(rbtnLimited.Checked == true) 
      { 

      } 
     } 

Zum Beispiel: Wenn rbtnLimited geprüft ich den Code ausführen möchten, die in TypeTimer.Limited innerhalb des Schalters ist Kann jemand mir bitte helfen?

+0

Nicht sicher, was Sie fragen. Du hast alles an Ort und Stelle. Senden Sie dazu den entsprechenden Enum-Wert jeweils an Ihren Klassenkonstruktor. – dotNET

Antwort

3

Sie konnten die Person Methode/Konstruktor rufen Sie die entsprechende ENUM wie folgt verwendet:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (rbtnNormalTimer.Checked == true) 
    { 
     Person(TypeTimer.Unlimited); 
    } 
    else if(rbtnCountDown.Checked == true) 
    { 
     Person(TypeTimer.Countdown); 
    } 
    else if(rbtnLimited.Checked == true) 
    { 
     Person(TypeTimer.Limited); 
    } 
} 

Im Falle eines Konstruktor es wie folgt verwenden:

Person person; 
if (rbtnNormalTimer.Checked == true) 
{ 
    person = new Person(TypeTimer.Unlimited); 
} 
else if(rbtnCountDown.Checked == true) 
{ 
    person = new Person(TypeTimer.Countdown); 
} 
else if(rbtnLimited.Checked == true) 
{ 
    person = new Person(TypeTimer.Limited); 
} 
+0

Person ist keine Funktion !! – dotNET

+0

@dotNET hat bereits einen Schnitt gemacht, sah es selbst, nachdem ich gepostet – SynerCoder

+0

Wie rufen Sie den Konstruktor? – dotNET

0

Hoffnung, dass public Person(TypeTimer s1) das sein wird, Konstruktor der Klasse Person, und Sie möchten ein neues Personenobjekt basierend auf der Auswahl der Optionsschaltfläche erstellen. Der folgende Code wird Ihnen dabei helfen, die Arbeit abzuschließen. wenn es nicht so ist können Sie die Methode direkt aufrufen wie Person(TypeTimer.Unlimited) diesmal nicht vergessen, einen gültigen Rückgabetyp in der Methodensignatur hinzufügen:

private void button1_Click(object sender, EventArgs e) 
{ 
    Person p; 
    if (rbtnNormalTimer.Checked) 
    { 
     p= new Person(TypeTimer.Unlimited) 
    } 
    else if (rbtnCountDown.Checked) 
    { 
     p= new Person(TypeTimer.Countdown) 
    } 
    else if (rbtnLimited.Checked) 
    { 
     p= new Person(TypeTimer.Limited) 
    } 
    // proceed with p 
} 
0

ich es normalerweise mit dem Tag-Eigenschaft eines Steuerelements zu machen. Nachdem ein Steuerelement überprüft wurde, bekomme ich seine Tag-Eigenschaft und make smth wie

TypeTimer enu; 
Enum.TryParse((sender as RadioButton).Tag, out enu); 
Switch(enu) 
     { 
      case TypeTimer.Unlimited: 
       (code here) 
       break; 

      case TypeTimer.Countdown: 
        (code here) 
        break; 
      case TypeTimer.Limited: 
        (code here) 
        break; 
      default: 
        break; 
     }