【发布时间】:2014-08-12 14:45:51
【问题描述】:
我有一个PropertyGrid,其所选对象包含多个属性,其中[DisplayName]s 为“速度”,所有属性都在不同的类别中(代码中的真实属性名称当然都是唯一的)。我注意到,如果我(例如)选择了 Speed #3 并调用了 PropertyGrid.Refresh(),则选择将自动移至 Speed #1。此外,Speed #3 的值有时也会显示在 Speed #1 旁边。一旦我单击网格并更改选择,情况就会自行解决,但这显然不是我们想要的行为。
我目前正在通过向DisplayNames 添加不同数量的\t 字符来解决这个问题,以使它们都独一无二。这是一个可以接受的解决方法,因为实际上并没有渲染制表符,但我当然不想这样做。
是否存在所有DisplayNames 必须唯一的规则,或者这是PropertyGrid 中的错误?
更新:由于有人一定会要求提供代码示例,请将其中一个粘贴到 PropertyGrid 中,然后每隔两秒左右从计时器调用 Refresh():
class Demo
{
[Category("Cat1")]
[DisplayName("Speed")]
public int Speed1 { get; set; }
[Category("Cat2")]
[DisplayName("Speed")]
public int Speed2 { get; set; }
[Category("Cat3")]
[DisplayName("Speed")]
public int Speed3 { get; set; }
}
【问题讨论】:
标签: c# winforms propertygrid