0

我制作了一个程序,用户可以使用单选按钮选择目的地。我的问题是即使用户选择“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”选项。

感谢您的时间。

4

2 回答 2

0

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

 private void Form1_Load(object sender, EventArgs e)
    {
        rbOne.Click += (s, o) => { status = rbOne.Text; };
        rbTwo.Click += (s, o) => { status = rbTwo.Text; };
    }
于 2013-09-24T05:09:46.150 回答
-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 事件,因为当您选择另一个单选按钮时它将被调用两次。

于 2013-09-23T19:05:41.817 回答