问题标签 [propertygrid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在属性网格的自定义字段中显示相似值?
我有一个属性网格,可以帮助我管理表单上的所有控件。这些控件是为设计师类型的人设计的,所以我不太担心用户界面......直到有人选择多个对象。
我有一个 UITypeEditor 用于这些常见对象的“BottomDiameter”属性。它跟踪单位(米与英尺)并即时做一些好事。但是,当有人选择两个或三个常见对象时,BottomDiameter 为空白,即使它计算为相同的文本字符串。
(我认为)它是空白的原因是它实际上是三个单独的 objDiameter 对象。我如何告诉属性网格的行为与所有其他属性一样,并在计算结果为相同字符串时显示值???
更新:例如,“Anchor”属性的文本输出为“Top, Right”,但当您将其拉下时,它是一个对象。然而,当您在表单上选择五个都具有相同 Anchor 设置的对象时,您仍然可以在属性网格中看到字符串“Top, Right”。
c# - 如何删除只读的自定义 UITypeEditor 的省略号?
我的属性网格中有两个相同类型的字段。但是,一个是只读的,另一个是可编辑的。
这两个字段都是自定义类型,因此有一个自定义 UITypeEditor,它将省略号 ([...]) 按钮放在字段上。
在这个例子中,FactoredAreaMod 是可以编辑的,但是 BOTH 都有省略号,这会给用户造成很大的混乱。有什么办法关掉吗??
.net - 以编程方式隐藏 PropertyGrid 中的字段
使用
关于由数字属性组成的类(它是另一个类的属性)的声明。
我简单地加载这个类的一个实例......
显然我不想在代码中手动构建 propertygrid,我知道该怎么做。
但这就是问题所在。根据属性的值,某些其他属性不应该是可见的,就好像我使用了
属性声明上的属性。
无论如何以编程方式执行此操作,而无需手动处理属性网格的所有构建>
c# - 选择多个项目时如何显示自定义字符串?
我有一个属性网格,可以帮助我管理表单上的所有控件。这些控件是为设计师类型的人设计的,所以我不太担心用户界面......直到有人选择多个对象。
我有一个 UITypeEditor 用于这些常见对象的“EffectiveDiameter”属性。它跟踪单位(米与英尺)并即时做一些好事。但是,当有人选择两个或三个公共对象时,EffectiveDiameter 为空白,即使它计算为相同的文本字符串。
例如,在大多数控件中,Microsoft 具有“Anchor”属性,该属性具有“Top, Right”的文本输出。当你把它拉下来时,它是一个带有漂亮 UITypeEditor 的对象。然而,当您在表单上选择五个都具有相同 Anchor 设置的对象时,您仍然可以在属性网格中看到字符串“Top, Right”。
如果我选择了几个自定义对象——所有对象都具有相同的有效直径——我如何让 EffectiveDiameter 像 Anchor 一样显示在 PropertyGrid 中?现在,该字段始终为空白。
c# - 在 PropertyGrid 控件中显示集合
我有一个包含成对字符串标签和值的对象数组,我如何将它们全部放在一个属性网格中?
c# - 属性网格仅显示某些类别
我有一个 PropertyGrid 用于具有以下属性类别的对象:样式、计算和杂项
我想要的只是向用户显示 Calcul 类别,但我不想使用 browsable 属性,因为我希望所有这些属性都在 Visual Studio 中可见。
所以,我需要的是一个代码内解决方案。
我使用.Net 3.5 c#
.net - .Net PropertyGrid 线程安全
我的应用程序中有一个PropertyGrid
用于编辑任意对象。我需要能够在另一个查看这些对象的线程上运行任意子例程(搜索功能,如果你好奇的话)。显而易见的问题是,用户可能在我的搜索线程正在读取其中一个对象的同时正在编辑它,最好避免这种情况(尽管它可能不会导致任何关键问题,因为我的搜索线程只是在读取,不写)。
从我的搜索线程中调用lock(obj)
很容易,但是在浏览了文档并简要浏览了 Reflector 中的 PropertyDescriptorGridEntry 代码后,我似乎找不到类似的位置来System.Threading.Monitor.Enter()/Exit()
调用 PropertyGrid 上的相关对象。我希望有 BeginEdit 和 EndEdit 事件可以使这变得足够简单,但我似乎找不到任何这样的东西。我宁愿在 PropertyGrid 中显示时不锁定整个对象,因为这显然会阻塞我的搜索线程,直到选择另一个对象。
我对 Windows 窗体的线程模型有点陌生,所以我希望有一些我刚刚忽略的明显答案。有什么帮助吗?
编辑:在异步运行搜索之前同步克隆我的对象可能效率很低,以至于我还不如同步运行搜索本身 - 异步运行的目的当然是让我的用户在搜索执行时继续工作。搜索需要很好地扩展,因为我正在经历的数据集最终会变得任意大,这使得同步克隆看起来会导致我试图避免的可用性问题。
c# - ShowDialog、PropertyGrid 和 Timer 问题
我有一个奇怪的错误,请让我知道您是否有任何关于原因的线索。
我的主窗体上有一个Timer
( System.Windows.Forms.Timer
),它会触发一些更新,最终也会更新主窗体 UI。ShowDialog()
然后我有一个编辑器,它是使用该方法从主窗体打开的。在这个编辑器上,我有一个PropertyGrid
( System.Windows.Forms.PropertyGrid
)。
我无法每次都重现它,但是通常,当我在编辑器中使用该属性网格上的下拉菜单时,它会卡住,即确定/取消按钮不会关闭表单,属性网格变得不可用,表单中的关闭按钮标题不起作用。
后台没有例外,如果我中断该过程,我会看到该应用程序正在执行与我在开头提到的更新相关的一些计算。
你能推荐什么?欢迎任何想法。
c# - PropertyGrid 控件的默认内置编辑器
我似乎无法在任何地方找到答案。哪些默认编辑器/转换器正在构建到 3.5 框架 PropertyGrid 控件中。否则我可以扔给它什么对象类型并且它能够可靠地显示和编辑?我找到了很多关于使用自定义编辑器的教程(我可能会在某个时候这样做)。但是现在在我的程序中,我允许用户创建他们自己的自定义属性,并且我想知道我应该允许哪些对象类型,假设他们将在 PropertyGrid 中编辑它们。
c# - 获取类型的默认 PropertyDescriptors
我正在PropertyGrid
通过实现来自定义对象类型在 a 中的显示方式ICustomTypeDescriptor
。我允许用户创建自己的自定义属性,这些属性存储在单个键和值字典中。我能够PropertyDescriptors
为这些值创建所有值并在属性网格中查看它们。但是,我还想显示所有默认属性,如果PropertyGrid
通过反射而不是我的覆盖ICustomTypeDescriptor.GetProperties
方法填充这些默认属性。
现在我知道如何获取对象的类型,然后GetProperties()
是 ,但这会返回一个PropertyInfo
not的数组ProperyDescriptor
。那么如何将PropertyInfo
类型的对象转换为PropertyDescriptor
对象以包含到我的自定义集合中PropertyDescriptors
?