用.net framework 4.6开发了个winform程序。现在遇到一个很操蛋的问题,实在是没有办法了,希望有缘人能帮忙解答。
程序采用Mdiparent容器,从数据库动态加载配置并生成界面Form1,form1里一个treeviewex(自定义封装的treeview),一个flowlayout1
。flowlayout1里面动态加载用户控件。用户控件通过枚举参数显示textbox,combobox,picturebox等基础样式。
问题出在用户控件上,用户控件里存放combobox进行显示时,CPU大增(0增大到30%)并一直持续,且在低配电脑上会导致整个form1闪烁。一旦这个带combobox的控件不显示,CPU立马降到0。
诡异的是,当我把整个程序界面最小化之后,CPU也会降到0,一旦向屏幕呈现就会飙升。
通过性能探查器只提示application.run(Mdiparent1)计数占96%以上,其他消息没有。
现在怀疑是绘制界面的问题,谁能提供些有价值的参考?
winform前台显示特定控件 CPU偏高并伴随闪烁
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 牛翔没人爱 2022-07-07 18:08关注
经过复杂的排查,终于找到了根源!问题出在对combobox的封装上,封装控件引用继承的基类里面对控件进行重绘,该基类貌似只对textbox有效,其他基础控件会导致formerrorhandle,当出现这个错误时,系统会发送一个界面错误的消息泵,所有的form组件在接收到这个消息后,都会进行重绘,导致了后面的闪烁。本想偷个懒引用开源的控件代码,结果给自己埋了个大坑
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥200 求能开发抖音自动回复卡片的软件
- ¥15 关于freesurfer使用freeview可视化的问题
- ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
- ¥15 求SC-LIWC词典!
- ¥20 有关esp8266连接阿里云
- ¥15 C# 调用Bartender打印机打印
- ¥15 我这个代码哪里有问题 acm 平台上显示错误 90%,我自己运行好像没什么问题
- ¥50 C#编程中使用printDocument类实现文字排版打印问题
- ¥15 找会编程的帅哥美女 可以用MATLAB里面的simulink编程,用Keil5编也可以。
- ¥15 已知隐函数其中一个变量τ的具体值,求另一个变量