枚举和RadioButtons

时间:2016-04-28 11:14:50

标签: c# winforms enums

如何检查单选按钮是否已切换并在切换中执行某些操作?这是我的代码的一部分:

这是我的班级Person.cs

 public enum TypeTimer { Unlimited, Countdown, Limited}

这是我的开关,我将把功能

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;
        }
        }

如何判断check == true是否等于枚举限制或无限制或倒计时?

这是在Form.cs

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

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

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

            }
        }

例如:如果选中rbtnLimited,我想在TypeTimer.Limited中执行交换机内部的代码 有人可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

您可以使用适当的枚举调用person方法/构造函数,如下所示:

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);
    }
}

在构造函数的情况下使用它如下:

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);
}

答案 1 :(得分:0)

希望public Person(TypeTimer s1)将成为Person类的构造函数,并且您希望根据单选按钮的选择创建一个新的person对象,以下代码将帮助您完成工作;如果不是那么你可以像Person(TypeTimer.Unlimited)那样直接调用方法,这次不要忘记在方法签名中添加一个有效的返回类型:

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
 }

答案 2 :(得分:0)

我通常使用控件的tag属性。检查一个控件后,我得到它的标签属性并使其成为像

一样的smth
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;
        }