【问题标题】:Getting Radio buttons Selection获取单选按钮选择
【发布时间】:2013-09-28 18:42:01
【问题描述】:

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

感谢您的宝贵时间。

【问题讨论】:

  • 如果你放一个断点,它会报告 rbOne.Checked 为 false?
  • 您的单选按钮是否属于同一组?
  • 是的,他们属于同一组。
  • 虽然你的代码有些多余但还是很奇怪,看来你还有其他代码导致了这个问题

标签: c# radio-button radiobuttonlist


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    首先,单个等号是赋值而不是检查相等性。 您应该使用两 (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 事件,因为当您选择另一个单选按钮时它会被调用两次。

    【讨论】:

    • IsChecked 在哪里?单等号在哪里?
    • status = rbOne.Checked ? rbOne.Text : rbTwo.Text; 应改为 status == rbOne.IsChecked ? rbOne.Text : rbTwo.Text;
    • 那是assignment 不是logical comparison
    • 好的。不应该是status = rbOne.IsChecked ? rbOne.Text : rbTwo.Text; 吗?
    • 对不起!我忽略了您正在使用 Form 的事实。
    猜你喜欢
    • 2015-03-28
    • 2012-12-15
    • 1970-01-01
    • 2012-03-10
    • 2014-03-14
    • 2015-02-27
    • 2012-02-21
    • 2011-07-17
    • 2012-07-30
    相关资源
    最近更新 更多