1

一旦我向它们添加了一个非常简单的数据绑定,我试图弄清楚为什么我的单选按钮的行为会有所不同。

考虑一个只有两个单选按钮 X 和 Y 的超级简单表单。现在说我想保留它们,所以在表单设计器中我Checked为 X 和 Y 的属性添加了一个新的设置键。现在我运行程序。这两个复选框最初都没有被选中,所以我点击 X 并且它被选中。到目前为止,一切都很好。现在我单击 Y,并期望 X 再次变为未选中,Y 变为选中,但发生的情况是只有 X 未选中,而 Y 仍然如此。再次单击 Y,然后检查 Y。

绑定如下所示:

this.rbX.DataBindings.Add("Checked", global::rb.Properties.Settings.Default, "X", true, DataSourceUpdateMode.OnPropertyChanged));
this.rbY.DataBindings.Add("Checked", global::rb.Properties.Settings.Default, "Y", true, DataSourceUpdateMode.OnPropertyChanged));

我错过了什么或做错了什么?

4

3 回答 3

0

将您的单选按钮放入组框中

于 2013-09-27T14:14:24.223 回答
0

在点击事件中:

private void RadioButtonClick(object sender, EventArgs e)
{
    var rb = sender as RadioButton;
    if (rb != null && !rb.Checked)
    {
        rb.Checked = !rb.Checked;
    }
}
于 2017-06-06T09:01:10.247 回答
0

我知道这很旧,但是我遇到了这个问题并且没有看到令人满意的答案,所以...我了解到的是在这种情况下需要“手动”处理设置,而不是绑定它们。

我的解决方案是在“CheckedChanged”事件处理程序中添加一行代码,并在表单加载时应用设置。

    Properties.Settings.Default.radio_checked_setting = radio.Checked;

radio.Checked = Properties.Settings.Default.radio_checked_setting;

对我来说似乎是一个错误,但我不知道它是否符合技术定义。与手动保存所有用户设置相比,仍然非常方便:)

于 2016-03-18T17:05:39.663 回答