WinForms 中单选按钮的奇怪行为

Odd behaviour of radio buttons in WinForms

我在一个非常普通的 VB.NET 项目中,在一个非常普通的 WinForms 表单中的一个非常普通的组框中有一些非常普通的单选按钮。越简单越好。

奇怪的行为是,如果一个 selected,然后我单击另一个,selected 单选框取消选中,就是这样。单击 次才能 select 单击单选按钮。

其中一个单选按钮的设计者代码:

Me.rbPhaseM00.AutoSize = True
Me.rbPhaseM00.CausesValidation = False
Me.rbPhaseM00.Checked = Global.CnstrSirfNetIntrc.My.MySettings.Default.rbPhaseM00
Me.rbPhaseM00.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.CnstrSirfNetIntrc.My.MySettings.Default, "rbPhaseM00", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
Me.rbPhaseM00.Location = New System.Drawing.Point(10, 19)
Me.rbPhaseM00.Name = "rbPhaseM00"
Me.rbPhaseM00.Size = New System.Drawing.Size(46, 17)
Me.rbPhaseM00.TabIndex = 21
Me.rbPhaseM00.Text = "M00"
Me.rbPhaseM00.UseVisualStyleBackColor = True

属性 是什么原因造成的?单选按钮没有附加事件,组框中没有其他控件。

有两个。首先是父级,他们都必须有相同的父级。使用 View + (Other Windows) + Document Outline 仔细检查,确认单选按钮控件全部嵌套在组框内,而不只是重叠。拖放修复。

而且他们都必须将 AutoCheck 属性 设置为 True。

编辑后:数据绑定看起来很危险。解绑测试。有几个现有的 SO 问题在谈论它,通过谷歌搜索找到它们 "Winforms databinding radiobuttons"。