c# - VB.Net Winform Radiobutton 的所有属性都设置为 ReadOnly = True
问题描述
这是我在这里的第一个问题,所以请耐心等待。
我在我的软件中遇到了一个错误,其中给定控件中的多个单选按钮都能够同时被选中,如此处所示。请注意,这是一个非常大的程序。
在调试时,我发现此行为的原因是 RadioButton 类的“Checked”属性上的 ReadOnly 属性设置为 true。此外,似乎 RadioButton 上所有属性的 ReadOnly 属性都设置为 True。通过将 ReadOnly 属性的值通过反射更改回 false,我能够确认这是导致意外行为的原因。有趣的是,当这种情况发生时,我的应用程序中的每个单选按钮都会遇到同样的问题。
我能够追踪属性更改的时间点。在另一种形式中,我在属性网格上显示一些对象,当我将该属性网格的 SelectedObject 设置为所有属性都更改时的对象时。带有属性网格的表单和带有单选按钮的表单无论如何都不常见。
一段时间以来,我一直无法找到这个问题的根源。如果有人对这如何可能有任何想法,它可能能够帮助我找出问题在我的程序中的位置。
这是我的调试窗口的图片,显示了在我为属性网格设置 SelectedObject 属性之前和之后的单选按钮上的 ReadOnly 属性值
谢谢你。
编辑1:
这是设置属性网格的代码。第 179 行。在调试时,需要在不同的选项卡中显示 3 个不同的子属性对象。第一个没有问题。第二个可以。
编辑2:
解决方案
感谢所有评论的人。在以下线程的帮助下,我实际上能够找出问题的解决方案。
在 PropertyGrid 中设置 ReadOnly 属性
基本上,在我的代码中有一个地方,我将对象中所有属性的只读状态设置为 True。如果所有对象没有特殊定义,似乎有某种通用的“只读”属性在所有对象之间共享。
我最初的解决方案是先检查 ReadOnlyAttribute 是否存在,然后再设置它的值。
但是,对于像这样定义的属性,这将返回 True
但是对于这样的属性是 False
我再次猜测是找到了某种继承属性。
因此,我的解决方案是使用以下功能进行检查。
将此检查放入我的 SetReadOnly() 函数中解决了我的问题。
解决方案
解决方案
感谢所有评论的人。在以下线程的帮助下,我实际上能够找出问题的解决方案。
在 PropertyGrid 中设置 ReadOnly 属性
基本上,在我的代码中有一个地方,我将对象中所有属性的只读状态设置为 True。如果所有对象没有特殊定义,似乎有某种通用的“只读”属性在所有对象之间共享。
我最初的解决方案是先检查 ReadOnlyAttribute 是否存在,然后再设置它的值。
但是,对于像这样定义的属性,这将返回 True
但是对于这样的属性是 False
我再次猜测是找到了某种继承属性。
因此,我的解决方案是使用以下功能进行检查。
将此检查放入我的 SetReadOnly() 函数中解决了我的问题。
推荐阅读
- r - R warning: "number of items to replace is not a multiple of replacement length"
- c# - How to catch DB constraint violation and throw UserFriendlyException?
- r - 用于应用函数并将输出作为数据帧写入 r 的 for 循环
- git - 在 Git 中,如何在指定标签处获取给定文件的哈希?
- c# - C# Lambda 表达式 - 压缩和/或逻辑
- java - 如何测试在jMock中没有调用类的所有方法?
- java - Sparql- 选择查询作为输入并将其转换为“构造”查询。?
- node.js - Kubernetes 上 Pod 中的 localhost
- r - ggplot2:关于尺寸图例
- ms-access - MS Access\Jet SQL - 员工上班和下班时间、同一张表、每位员工的全职工作总和