如何实现radiobutton的单选呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现radiobutton的单选呢?相关的知识,希望对你有一定的参考价值。
很简单的问题.
比如有 (男 ,女)两个选项
选了男,女就不选.选了女,男就不选.
请问如何实现呢?
我写的checkedchanged事件为什么不行呢.
比如在radiobutton1里添加checkedchanged事件,在里面添加radiobutton2.checked=false;
为什么是错的呢?
radiobuttonlist其实可以实现单选,但是它是把选项都竖着放的.
我看网页上那些都是横着放的啊...还有貌似别人都是用的两个radiobutton嘛```
求教用两个radiobutton如何实现单选呢?
1楼的朋友,恐怕不是你说的这样的吧``?你试试?
您可以启用或禁用菜单项。在启用状态下,可以使用下列按键来控制它:
键 说明
组合键 直接调度菜单项的鼠标事件,而不必显示菜单的层次结构。
以下示例演示添加单选按钮菜单项到菜单,并通过单击面板来显示菜单。
从"库"面板中拖动面板组件到舞台(或直接通过 ActionScript 代码创建组件实例),并对实例命名。
由于菜单组件不需要参与布局,建议直接通过 ActionScript 代码创建组件实例。在主时间轴中选择第一帧,打开"动作"面板,然后输入以下代码:
import flash.events.MouseEvent;
import shinater.swing.MenuItem;
import shinater.swing.RadioButtonMenuItem;
import shinater.swing.Menu;
var smallItem:RadioButtonMenuItem = new RadioButtonMenuItem("Small Font");
smallItem.setGroupName("fontSizeGroup");
var mediumItem:RadioButtonMenuItem = new RadioButtonMenuItem("Medium Font");
mediumItem.setGroupName("fontSizeGroup");
mediumItem.setSelected(true);
var largeItem:RadioButtonMenuItem = new RadioButtonMenuItem("Large Font");
largeItem.setGroupName("fontSizeGroup");
var my_menu:Menu = new Menu();
my_menu.addMenuItem(smallItem);
my_menu.addMenuItem(mediumItem);
my_menu.addMenuItem(largeItem);
my_menu.addSeparator();
var boldItem:RadioButtonMenuItem = new RadioButtonMenuItem("Bold");
boldItem.setGroupName("fontStyleGroup");
var normalItem:RadioButtonMenuItem = new RadioButtonMenuItem("Normal");
normalItem.setGroupName("fontStyleGroup");
normalItem.setSelected(true);
my_menu.addMenuItem(boldItem);
my_menu.addMenuItem(normalItem);
my_panel.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent)
my_menu.show(my_panel, my_panel.mouseX, my_panel.mouseY);
);
参考资料:http://www.oschina.net/question/579595_67445 参考技术A RadioButton里有这个属性 ,
GroupName你将这个属性全部设成一样就可以了。 参考技术B 你需要个容器空间panel或者groupbox才可以,把2个radiobutton放进去可以组成逻辑,否则你的2个都可以选本回答被提问者采纳 参考技术C 不需要checkedchanged事件吧 当程序运行后 你选择其中的一个radiobutton 另外一个radiobutton就自动不选了赛。
如何防止在表单加载时检查 RadioButton?
【中文标题】如何防止在表单加载时检查 RadioButton?【英文标题】:How can I prevent a RadioButton from being checked when the Form loads? 【发布时间】:2011-10-08 17:49:15 【问题描述】:我似乎无法阻止我的表单检查Group Box
中的单选按钮之一:
如设计器中所示,此处未选中任何单选按钮。
下面是这个简单表单的所有代码。无需在此处或在表单设计器中检查单选按钮。
问:有没有办法防止在加载表单时检查任何单选按钮?
public ValueTypeSelector()
InitializeComponent();
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
radioButton5.Checked = false;
radioButton6.Checked = false;
button1.Enabled = false;
button1.Click += clickEvent;
button2.Click += clickEvent;
radioButton1.Click += clickEvent;
radioButton2.Click += clickEvent;
radioButton3.Click += clickEvent;
radioButton4.Click += clickEvent;
radioButton5.Click += clickEvent;
radioButton6.Click += clickEvent;
void OnShow(object sender, EventArgs e)
foreach (RadioButton rad in Controls)
if (rad.Checked)
Console.WriteLine("WTF?");
void clickEvent(object sender, EventArgs e)
RadioButton rad = sender as RadioButton;
if (rad != null)
if (rad.Checked)
if (rad == radioButton1)
DataType = TableDataType.Boolean; // <= HERE IS THE PROBLEM! FIRES ON FORM LOAD
else if (rad == radioButton2)
DataType = TableDataType.Character;
else if (rad == radioButton3)
DataType = TableDataType.DateTime;
else if (rad == radioButton4)
DataType = TableDataType.Decimal;
else if (rad == radioButton5)
DataType = TableDataType.Integer;
else if (rad == radioButton6)
DataType = TableDataType.String;
else
return;
button1.Enabled = true;
else if (sender == button1)
DialogResult = DialogResult.OK;
Close();
else if (sender == button2)
DialogResult = DialogResult.Cancel;
Close();
更新:问题是radioButton1
在显示表单时被检查:
if (rad == radioButton1)
DataType = TableDataType.Boolean; // <= HERE IS THE PROBLEM! FIRES ON FORM LOAD
else if (rad == radioButton2)
【问题讨论】:
添加一些单选按钮,使其不可见:) 哈哈。我宁愿控制我的代码! 【参考方案1】:确保您的单选按钮不是第一个 tabindex = 0 控件。使 OK 按钮 tabindex=0,然后是单选按钮。
【讨论】:
啊哈!我知道它必须是这样简单的东西!谢谢。 @jp2code 或在设计器中将单选按钮的 AutoCheck 属性设置为 false,然后在构造函数中将其设置为 true。这似乎也行得通。 还有更简单的解决方案。检查我的答案区域中的评论。 我只想说这是一个非常愚蠢的错误。谢谢! @jp2codeThis 绝对有效,但不必在设计器中完成。也可以通过编程方式完成:radioButton1.AutoCheck = false;【参考方案2】:在设计模式中,您会发现 AutoCheck 属性设置为 true。把它变成假的就行了。直到您在运行时手动选择它才会被检查。
【讨论】:
我正在尝试编辑我的内容,但它不允许我这样做。将 AutoDrop 和 AutoCheck 保持为 true 可以满足您的要求。 我想这会奏效。通过这样做,我必须在clickEvent
处理程序的代码中明确检查 Radio Button
,对吗?
是的。您可以通过代码或 UI 检查单选按钮。您可以在 CheckedChanged 事件中处理更改。
谢谢!我可能使用了 LarsTech 的回复作为答案,但我在这个帖子中给了你 4 个不同的赞成票。
这不是问题。我很高兴能提供帮助。【参考方案3】:
在属性中设置TabStop=False
。
【讨论】:
【参考方案4】:在表单加载后将选中状态设置为 false。把它放在 Shown 事件中,看看它是否有效。
【讨论】:
这是我试图避免的蛮力技术。 LarsTech 的原始答案是完成我需要的最快的,尽管 SaravananArumugam 的答案可能从 Coder 的角度来看更正确。【参考方案5】:我认为这实际上可能是 VS 中的一个错误。我使用的是 2010 SP1,但 OP 没有提及他们使用的是哪个版本。
在我的一个应用程序中发生了同样的幻象。
将两个单选按钮的 Autochecked 更改为 False,构建了应用程序。现在没有选择受影响的按钮,但现在选择了以前不受影响的其他按钮。
回到代码并在原始按钮上将自动检查设置为 true,然后在新受影响的按钮上从 true 切换为 false,然后再次返回。重新运行,应用程序很好;没有选择任何按钮。
当我第一次检查原始单选按钮的 tabIndexes 时,它们被设置为 tabIndex 0;我改变了,所以这也可能是混合的一部分。
【讨论】:
我没有提到它,但它确实有visual-studio-2010
标签。这里的版主责备人们在主题中发布带有标签的问题。我认为愚蠢的 *** 规则。以上是关于如何实现radiobutton的单选呢?的主要内容,如果未能解决你的问题,请参考以下文章