在一个组框groupbox中,放两个radiobox控件,竟然都可以为 Checked = true;

zwth003 2010-08-24 10:08:56
在一个组框groupbox中,放两个radiobox控件,竟然都可以为 Checked = true;
---------------------------------------------------
按理说,同一个组框中,只能有一个 radiobox的checked 为 true 呀,
但是我竟然可以用代码设置两个全为真,或是全为假,这是为什么呢?


private void button1_Click(object sender, EventArgs e)
{
rd1.Checked = true;
rd2.Checked = true;
}

private void button2_Click(object sender, EventArgs e)
{
rd1.Checked = false;
rd2.Checked = false;
}

...全文
386 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwth003 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 king4323210 的回复:]

单选按钮和分组框是2个概念
单选当然是能被选中的
1个2个多个都是一样
你ADD进了分组框
但分组框不知道2个按钮是一组
你的明白
[/Quote]

不会吧,组框的功能,就是将加进来的控件视为一组呀。这是它本质的功能呀。
按你的说法,我想问,如何让分组框知道,这两个单选按钮是一组呢?

谢谢。
king4323210 2010-08-25
  • 打赏
  • 举报
回复
单选按钮和分组框是2个概念
单选当然是能被选中的
1个2个多个都是一样
你ADD进了分组框
但分组框不知道2个按钮是一组
你的明白
hyblusea 2010-08-25
  • 打赏
  • 举报
回复
哈哈, 楼主真有心, 还做个GIF...
大脸猫脸大 2010-08-25
  • 打赏
  • 举报
回复
我现在 倒对 楼主 的 gif 文件 感兴趣。 呵呵
行者_ 2010-08-25
  • 打赏
  • 举报
回复
恩 是的
如果是autocheck设置为false 后会出现这样的情况
我回答的时候还没看到你的回复,所以才那样说的。下面是一点我在网上copy的关于这个属性的解释,你看下,也许有用

If the AutoCheck property is set to false, a group of RadioButton controls will not act as a mutually exclusive group and the Checked property must be updated in code.

zwth003 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ztgis 的回复:]

引用 7 楼 zwth003 的回复:
不对,等等,我试一下。

不用试了,
是最后一个设置选中语句的那个
rd1 是未选中,rd2是选中;
[/Quote]
我说过了,前提是 autochecked属性设成 false
你再试试,ok?
zwth003 2010-08-25
  • 打赏
  • 举报
回复
这是单选钮呀,并且在一个组框 groupbox 中,理论上,同时只能一个被选中,
但是事实上,确实多个可以被选中,这是为什么呢?
难道是 bug
行者_ 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zwth003 的回复:]
不对,等等,我试一下。
[/Quote]
不用试了,
是最后一个设置选中语句的那个
rd1 是未选中,rd2是选中;
zwth003 2010-08-25
  • 打赏
  • 举报
回复
窗体代码全部如下:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
rd1.Checked = false;
rd2.Checked = false;
}

private void button3_Click(object sender, EventArgs e)
{
rd1.Checked = true;
rd2.Checked = true;
}
}
zwth002 2010-08-25
  • 打赏
  • 举报
回复
是这样的,就是将autochecked设置成 false,用代码设置,就会两个同时为checked
zwth003 2010-08-25
  • 打赏
  • 举报
回复
不对,等等,我试一下。
zwth003 2010-08-25
  • 打赏
  • 举报
回复
我没说明白,是用代码设置
zwth003 2010-08-25
  • 打赏
  • 举报
回复
大家没有仔细试吧。你把 autochecked设成 false 后,运行时,可以都设置成 有点状态的。
实在不信,我就发图为证了。
Peter200694013 2010-08-24
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
rd1.Checked = true;
rd2.Checked = true;
}

点击button1之后,
rd1 是未选中,rd2是选中;也就是所以最后一个为准
兔子-顾问 2010-08-24
  • 打赏
  • 举报
回复
可以都不选择,但同时只有一个选中的。
Peter200694013 2010-08-24
  • 打赏
  • 举报
回复
在页面呢? 是不可以同时选的吧
happyer_longlong 2010-08-24
  • 打赏
  • 举报
回复
代码设置的是初始状态,你点击后就变了

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧