社区
C#
帖子详情
【求助】窗口内有很多控件时,如何让保证滚动时不闪
cuijiyue
2015-05-21 01:42:09
需要做一个界面,上面有很多控件,1000多个吧,就是button或者text,还有一些线
用C#写了个小例子,一个panel上,竖着排列了1000行的textview
但是当拉动滚动条时,界面上的会一闪一闪的,感觉就是刷新率跟不上
但是写代码时,几千行的代码,上下滚动,也不会感觉到闪啊,
有没有什么方法能优化下
...全文
145
6
打赏
收藏
【求助】窗口内有很多控件时,如何让保证滚动时不闪
需要做一个界面,上面有很多控件,1000多个吧,就是button或者text,还有一些线 用C#写了个小例子,一个panel上,竖着排列了1000行的textview 但是当拉动滚动条时,界面上的会一闪一闪的,感觉就是刷新率跟不上 但是写代码时,几千行的代码,上下滚动,也不会感觉到闪啊, 有没有什么方法能优化下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Donniezhu
2015-05-22
打赏
举报
回复
你的线应该使用绘图实现的吧?当你拖动滚动条的时候,页面就会激发重绘事件,一般绘图时会清空之前的绘图,如果清空时没有设置颜色,那就会是白色,然后之后再绘图,这就不难理解刷屏的感觉了。 1,首先清空时设置颜色 比如 g1.Clear(this.BackColor); 2,可以研究一下双缓冲技术。网上有很多,这只是我随便找到的 http://blog.csdn.net/keep_silence_/article/details/7849880 3,第三就是2楼说的,尽量重复使用控件,尽量使用低级别控件。比如用textbox 的某个事件,替代button的功能。
gengchenhui
2015-05-22
打赏
举报
回复
1000多个,竟然没死?
以专业开发人员为伍
2015-05-21
打赏
举报
回复
引用 2 楼 sp1234 的回复:
当滚动条拖动时去动态加载、销毁、(用轻量的)替换控件。
最主要地是替换。把(比如说)向上滚动时移出可见区域的控件重新使用并且移动到屏幕下方,这样的界面刷新性能自然就够了。
以专业开发人员为伍
2015-05-21
打赏
举报
回复
人家“几千行的代码,上下滚动,也不会感觉到闪”的技术,主要还是程序逻辑设计方面比较强(使用控件的流程方法),而不是仅仅靠会用点控件啊。
以专业开发人员为伍
2015-05-21
打赏
举报
回复
textview是啥,我还真的不知道。 不过不同控件的显示效率是不同的,选择合适的(例如label、listbox等等),可以降低几十倍的资源占用率,可以“不闪”。特别是不要使用那些动不动就Paint(重绘)的控件。 如果你觉得一个复杂的控件比较好,那么就用20~30个控件复用,当滚动条拖动时去动态加载、销毁、(用轻量的)替换控件。
amdunkszy
2015-05-21
打赏
举报
回复
建议使用支持虚拟化的控件 例如:VirtualizingStackPanel 如果你是表单形式的 我建议你用 DataGrid 还方便布局 1000多的控件都加载上我觉得没死就是奇迹
vfp6.0系统免费下载
答案: 在 6.0 版本中有
很多
激动人心的新特性,其中包括自定义自动服务程序 (Automation server) 的改进,Active Document、OLE 拖放支持、Access 和 Assign 方法程序、组件管理库等。有关新特性和新语言的详细内容...
Qt QScrollArea显示
滚动
条(添加自定义
控件
)
,有从网上找了些资料,原来QScrollArea可以使用setWidget方法来设置需要使用
滚动
条来控制显示的
窗口
(现在想想,这样其实是很合理的,我自己当初想偏了,
滚动
条本来是应该用来控制
窗口
的
滚动
,而不能是一个button...
VC
控件
添加定
时
消息处理: void Cmyedit::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent==5){ //获得鼠标当前位置,转换为父
窗口
内的坐标 CPoint cursor_Pos;...
句柄 HANDLE
一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个
窗口
,按钮,图标,
滚动
条,输出设备,
控件
或者文件等。应用程序能够通过句柄访问相应...
扩展GridView
控件
(索引) - 增加多个常用功能
文章索引扩展GridView
控件
(1) - 鼠标经过行
时
改变行的样式扩展GridView
控件
(2) - 复合排序和排序状态提示扩展GridView
控件
(3) - 根据按钮的CommandName设置其客户端属性扩展GridView
控件
(4) - 联动复选框(复选框的...
C#
110,534
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章