当前位置:首页 > C#编程 > C#/.net框架 > 正文内容

C#的propertygrid控件,选择和修改项目时很慢

Jorge2年前 (2022-05-08)C#/.net框架776

C#的propertygrid控件是很强。可以实现类似Vitual Studio属性面板那样的效果。

但是。。。。


我们一直痛苦它在选择和修改项目的时候很慢。


我的用法是使用控件的SelectObject来绑定数据。

C#
 PgridMotionSpeed.SelectedObject = null;
 PgridMotionSpeed.SelectedObject = InterSpeedConfigData.SpeedConfig;


其中InterSpeedConfigData.SpeedConfig类似下面的定义。

image.png

绑定后数据很少,就下面几项。

但是用鼠标点击项目时明显感觉有些卡顿。

image.png


此问题网上无人反映,好像大家从来没出现这种问题。

目前也没有解决方案。


以后有解决方案时会来此续贴。。。。


2020/4/5 注:

后来发现,仅在使用vs调试运行程序时卡顿感觉最明显,貌似跟程序的规模有关系。

如果运行exe执行程序,则卡顿要好很多,但是仔细观察仍然有些吃UI线程的资源的感觉,因为当点击修改项目时,此时UI上的一个tabpage标签会跟着闪烁,而此控件跟这个PropertyGrid根本不在同一个面板上面。(它们都是mid子窗体面板)。


对于vs的调试运行,感觉非常的吃电脑性能,勇哥手里的项目,在速度较差的电脑上面调试运行,还发现程序执行有混乱的现象,例如程序单步执行到某句话后,无异常直接后面语句不执行了。。。(总之越调试越让心惊的感觉,见鬼一样。),但是执行exe,则没有问题。


2022/4/6注:

另外发现在mdi主窗体使用下面代码,也是造成propertygrid控件修改项目很慢的主要原因。(做梦也想不到会有影响)

C#
 //protected override CreateParams CreateParams
        //{
        //    get
        //    {
        //        CreateParams cp = base.CreateParams;
        //        cp.ExStyle |= 0x02000000;
        //        return cp;
        //    }
        //}

把上面代码注释掉,现象就排除了。



#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。


扫描二维码推送至手机访问。

版权声明:本文由7点博客发布,如需转载请注明出处。

本文链接:http://6dot.cn/?id=37

标签: .NET.NET框架
分享给朋友:

“C#的propertygrid控件,选择和修改项目时很慢” 的相关文章

C#的propertygrid控件,选择和修改项目时很慢

C#的propertygrid控件,选择和修改项目时很慢

C#的propertygrid控件是很强。可以实现类似Vitual Studio属性面板那样的效果。但是。。。。我们一直痛苦它在选择和修改项目的时候很慢。我的用法是使用控件的SelectObject来绑定数据。C# PgridMotionSpeed.SelectedObject ...

C#字符串与享元(Flyweight)模式

C#字符串与享元(Flyweight)模式

注:关注这个话题是因为看到C#的关键字 lock时,其传入引用对象。因为string也是引用对象,所以能否做为lock的参数?对于这个问题,要搞明白C#的字符串的一个特点,它使用类似于享元模式的机制。因此在lock中锁字符串是相当不安全的。下面贴子是对C#字符串与享元模式的深入讨论。写这个文章,主要...

C# Modelbus crc16计算校验和程序

C# Modelbus crc16计算校验和程序

我们手里一个无刷电机,采用485的modelbus crc16协议来控制。因此需要一个计算校验和的工具。源码:C#using System;using System.Collections.Generic;using System.ComponentModel;usin...

C# tableLayoutPanel动态加载控件闪烁的解决方案

C# tableLayoutPanel动态加载控件闪烁的解决方案

WinForm加载多个自定义控件时,会出现很严重的闪烁问题,很卡,一块一块的加载(像打开网页时,网络很卡的那种感觉)简直没法忍受。在网上搜索了好久,网上大部分的方法是一下4种,但是都不能有效的解决问题。  1.将DoubleBuffered 设置 true,用双缓存处理Form界面内容加载,可以提高...

关于C#项目引用的一点经验

关于C#项目引用的一点经验

关于项目引用,有几种:(一)这种是引用系统的程序集(二)下面这种是引用你自己的项目“解决方案”(三)最后一种是浏览本机上的项目的dll。对于工程中有几十个项目的软件来说,虽然使用(二)是很方便。但是会编译速度奇慢,而且随着项目越多越慢。貌似他run之前都会把所有项目都试图更新一下。勇哥宿舍的电脑,实...

c#——表达式树在LINQ动态查询

c#——表达式树在LINQ动态查询

一般如果逻辑比较简单,只是存在有的情况多一个查询条件,有的情况不需要添加该查询条件简单方式这样操作就可以了C#public IQueryable<FileImport> DynamicChainedSyntax (IQueryable<FileImport&g...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。