[问题] WinForm Refresh 的问题

楼主: leho (哩厚)   2016-06-10 02:24:26
我有一个问题想请问一下各位前辈,
当对 winform 的表头 点住 鼠标 左键不放(就是移动视窗位置 表头 Text 那边),
这时候winform 的内容似乎就不会更新,(像是LABEL 或 TEXTBOX 或 DATAGRIDVIEW 内容)
有查了一下,问题似乎是 UI thread 被 CLICK 咬住 所以导致无法更新?
想请问一下,
1. 问题真的是因为这样吗?
2.有没有除了开一个新的 thread 的写法?
如果 在 鼠标 CLICK event 上 用 Application.DoEvents 有办法解决吗?
谢谢。
作者: anumis (阿努米斯)   2016-06-10 06:54:00
你有什么需求是一定要在鼠标移动更新画面?还是单纯的想做这个功能?
楼主: leho (哩厚)   2016-06-10 15:42:00
因为可能会有再移动画面时 画面停住的问题
作者: ghostx2 (Ghostx2)   2016-06-10 17:55:00
要看写在哪个作业系统 行为不太一样
楼主: leho (哩厚)   2016-06-10 20:02:00
作业系统 应该是 win 7
作者: ghostx2 (Ghostx2)   2016-06-10 21:48:00
我目前win10,我写一个UI Timer刷时间,用你的步骤会显示
楼主: leho (哩厚)   2016-06-10 22:54:00
请问一下g大是说 用TIMER 去执行 更新的动作 还是单纯的用TIMER 来 作讯息处理显示 像是 数字累加之类的?
作者: ghostx2 (Ghostx2)   2016-06-10 23:29:00
单纯用timer显示当下时间而已,看秒数一样会跳你是不是用thread去invoke? 才导致卡顿?
楼主: leho (哩厚)   2016-06-11 05:02:00
g大 没错 我的确是这样用的请问g大 所以这样作是一定会卡顿吗?
作者: ghostx2 (Ghostx2)   2016-06-11 20:22:00
会抢UI使用权,还不如用timer刷状态就好,或用BeginInvoke
楼主: leho (哩厚)   2016-06-23 23:44:00
感谢g大

Links booklink

Contact Us: admin [ a t ] ucptt.com