获取单选按钮选择

时间:2013-09-23 18:44:35

标签: c# radio-button radiobuttonlist

我制作了一个程序,用户可以使用单选按钮选择目的地。我的问题是,即使用户选择“1”作为目的地,程序也将其识别为“2”。

这就是我所做的:

public partial class Airplane_Simulation : Form
{
    private String status="";

    public Airplane_Simulation()
    {
        InitializeComponent();
        CheckedChanged();

        rbOne.CheckedChanged += (s,e) => { CheckedChanged(); };
        rbTwo.CheckedChanged += (s, e) => { CheckedChanged(); };

        //more codes here
    }

    public void CheckedChanged()
    {
        status = rbOne.Checked ? rbOne.Text : rbTwo.Text;
    }
}

这里似乎有什么问题?我已经使用if条件来检查哪一个被检查但是我仍然只选择“2”。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

如果您想在每次点击复选框时更改status,这可能对您有所帮助。

 private void Form1_Load(object sender, EventArgs e)
    {
        rbOne.Click += (s, o) => { status = rbOne.Text; };
        rbTwo.Click += (s, o) => { status = rbTwo.Text; };
    }

答案 1 :(得分:-1)

首先,单个等号是分配而不是检查是否相等。 你应该使用两(2)个等号。

然后我会使用rbOne.IsChecked属性来查看是否检查了控件。

rbOne.Checked是一个不是财产的事件。

编辑:

以上内容可用于WPF。以下是我在Windows窗体中的内容:

    public Form1()
    {
        InitializeComponent();



        rbOne.Click += new EventHandler(radioButton_Click);
        rbTwo.Click += new EventHandler(radioButton_Click);
    }

    public void radioButton_Click(object sender, EventArgs e)
    {
        status = rbOne.Checked ? rbOne.Text : rbTwo.Text;

}

我不会使用CheckedChanged事件,因为当您选择其他单选按钮时,它将被调用两次。