.net – 如何避免Windows窗体单选按钮容器自动分组
的背景
在.NET Windows Forms(2.0)中,单选按钮按容器控件自动分组,无论是Form,Panel还是GroupBox. 这意味着当您选择一个单选按钮时,同一容器中的每个其他单选按钮都会自动更改为未选中状态. 现在,考虑以下表单布局: MUST HAVE NICE TO HAVE DESCRIPTION --------- ------------ ----------------------------------------------- [ ] [ ] The gizmo works [ ] [ ] The gizmo works beautifully [ ] [ ] The gizmo works amazingly and makes you breakfast [ ] [ ] The gizmo comes with a pony >每个'[]’都是一个单选按钮. 如您所见,单选按钮应按列分组:选择其中一个无线电应该清除列的其余部分,但在另一列中应该没有效果. 问题 基本上问题是这是一个动态生成的形式. >布局中的行数是动态的,它是从可配置的表单定义加载的. 我尝试过但没有奏效 我首先尝试使用三个面板(每列一个)实现动态生成的布局,因此自动单选按钮分组可以正常工作.它确实如此. 但是与单选按钮及其文本之间的水平对齐相关的布局问题正在扼杀我.直到运行时才会知道文本的大小,文本行可能会换行(有时每个项目会有几次).有时它会正确对齐,有时却不对齐.我即将开始调试这个,但我想如果改变这个三面板实现是一个更好的选择. 我想做什么 我想通过使用带有三列的TableLayoutPanel来重新设计布局,以简化对齐相关的问题,但这意味着我无法使用自动单选按钮按容器分组“功能”. 编辑: 正如Gerrie建议的那样,其他布局选项是将每一行实现为用户控件并使用流布局面板. 这意味着,我可能想要使用控件进行布局,但不能使用单选按钮分组. 尽管使用水平用户控件,我仍需要获得垂直单选按钮组 /编辑 我想问的是什么 我需要有关如何手动控制单选按钮分组的指针和建议.如果需要,我真的不介意继承RadioButton类. 具体来说,是否存在任何“规范”或已知的子类化’RadioButton’或者一直到Win32 API的方式,以便每次检查控件时(通过使用鼠标,键盘输入,空格键和任何其他方式)我不知道选择它们)我可以捕获事件并手动更新表单上每个其他控件的状态,并且自动分组功能众所周知是“去激活”?我担心实现也与容器有关,我可能也被迫继承Panel?. 分组“魔术”如何在Windows窗体中工作? 我发现谷歌搜索实现自定义单选按钮组或“单选按钮列表”的每个解决方案都是以某种方式使用集合的容器.可以避免容器吗?如果是这样,怎么样?
一个时间解决方案(读:凌乱的黑客),我发现我将每个单选按钮放在自己的小面板中.因此,任何一个之间都没有任何分组.我正在听每个按钮检查事件并相应地更新相应的事件.
我仍然认为拥有那么多面板太过分了,如果有人有更清洁的解决方案,我很乐意听到它. (好的,很抱歉回答我自己的问题.你知道,当你花时间解释一些事情时,你会开始看到问题,这是另一回事.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – Bootrec / FIXBOOT vs Bootrec / FIXMBR
- 将存储库从Windows迁移到Linux时出现格式错误的转储文件头(
- ssh on cygwin(win10):read_passphrase:无法打开/ dev /
- windows-phone-7.1 – 如何在Windows8上运行Windows phone
- .net – 以编程方式在Windows中重启USB设备
- windows上使用logstash-input-jdbc
- 在64位系统上部署BDE的要点
- 如何在Windows(ffmpeg等)中使用Java快速截取桌面?
- win10专业版/教育版永久数字权利激活密钥和教程
- 真实世界的Windows Azure成本计算示例,任何人?