c# - 在 PropertyGrid 中选择项目会导致 UI 闪烁
问题描述
我设计了一个带有多个(嵌套)TableLayoutPanel 的 WinForms 应用程序,其中包含指示硬件组件状态的背景图像和颜色。我使用 ComponentModel 添加了一个 PropertyGrid 来显示特定对象的内容。
例子:
public class MyObject
{
public float Voltage;
[Category("Operation Voltage")]
[Description("Voltage applied")]
[DisplayName("Voltage")]
public float Vop { get => Voltage; }
}
我将对象添加到 PropertyGrid (示例是胡说八道 - 仅用于说明)
MyObject m = new MyObject();
m.Voltage = 1.234;
propertyGrid1.SelectedObject = m;
到目前为止一切正常,直到我主动选择 PropertyGrid 中的值作为实际值,选择类别标题没有副作用)。如果我这样做,我的应用程序中的大多数 TableLayoutPanel 都会开始闪烁。
问题是由此处描述的此方法引起的(我需要用于其他目的):
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
在我认为描述该问题的本文之后,我应该发布“设备上下文”。谁能指出在 PropertyGrid 的情况下如何做到这一点?
解决方案
推荐阅读
- react-native - expo cli错误安装时间我尝试了很多次
- tensorflow-federated - 如何在 tensorflow 联合中打印本地输出?
- python - 如何围绕特定点减少列表中的点?
- python - 我想在 matplotlib 条形图中修改条形位置
- python - 在不同的列中删除无序的重复项
- javascript - 出现与切换按钮的 JS 相关的错误
- javascript - Apexcharts 在渲染新系列之前删除旧数据系列
- microsoft-graph-api - 用户增量查询混淆
- html - 溢出父元素之外的子元素
- c++ - 将具有多个参数的函数作为参数传递