作者leho (哩厚)
看板C_Sharp
标题[问题] WinForm Refresh 的问题
时间Fri Jun 10 02:24:26 2016
我有一个问题想请问一下各位前辈,
当对 winform 的表头 点住 滑鼠 左键不放(就是移动视窗位置 表头 Text 那边),
这时候winform 的内容似乎就不会更新,(像是LABEL 或 TEXTBOX 或 DATAGRIDVIEW 内容)
有查了一下,问题似乎是 UI thread 被 CLICK 咬住 所以导致无法更新?
想请问一下,
1. 问题真的是因为这样吗?
2.有没有除了开一个新的 thread 的写法?
如果 在 滑鼠 CLICK event 上 用 Application.DoEvents 有办法解决吗?
谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.204.175.91
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1465496670.A.27A.html
※ 编辑: leho (123.204.175.91), 06/10/2016 02:40:35
1F:→ anumis: 你有什麽需求是一定要在滑鼠移动更新画面?还是单纯的想做 06/10 06:54
2F:→ anumis: 这个功能? 06/10 06:54
3F:→ leho: 因为可能会有再移动画面时 画面停住的问题 06/10 15:42
4F:→ ghostx2: 要看写在哪个作业系统 行为不太一样 06/10 17:55
5F:→ leho: 作业系统 应该是 win 7 06/10 20:02
6F:→ ghostx2: 我目前win10,我写一个UI Timer刷时间,用你的步骤会显示 06/10 21:48
7F:→ leho: 请问一下g大是说 用TIMER 去执行 更新的动作 还是单纯的用 06/10 22:54
8F:→ leho: TIMER 来 作讯息处理显示 像是 数字累加之类的? 06/10 22:55
9F:→ ghostx2: 单纯用timer显示当下时间而已,看秒数一样会跳 06/10 23:29
10F:→ ghostx2: 你是不是用thread去invoke? 才导致卡顿? 06/10 23:29
11F:→ leho: g大 没错 我的确是这样用的 06/11 05:02
12F:→ leho: 请问g大 所以这样作是一定会卡顿吗? 06/11 05:03
13F:→ ghostx2: 会抢UI使用权,还不如用timer刷状态就好,或用BeginInvoke 06/11 20:22
14F:→ leho: 感谢g大 06/23 23:44