C#winform中,如何设置延时!求具体代码!(用timer控件)

C#winform中,如何设置延时!求具体代码!(用timer控件),第1张

private void timer1_Tick(object sender, EventArgs e)

{

停止录像功能

timer1.Enabled=false

}

调用: 开始录像功能

timer1.Enabled=true

你的timer1的间隔时间设成10秒就行了。

我用的是线程,但是BeginInvoke的函数和Sleep一起用会一直假死,有什么办法没有

你用BeginInvoke和Sleep会假死,只能说你代码写的有问题,使用异步委托新建一个后台线程,在你主线程是不会有任何影响的,你可以在主线程控制时间,还用你这个想法,在Threading里面计时,在时间结束时结束这个异步调用就可以了

你应该你给你那断代码粘出来,我没想出异步委托咋能假死主线程

这个问题有点儿难度,给你一点儿一点儿解释吧,首先这个tooltip的显示时间的控制是由windows完成的,你可以通过SystemInfomation这个类的MouseHoverTime获取

不知道你了解windows的消息处理机制么?当hover发生的时候,windows会向这个treeview发送一个needtext消息,这个消息在treeview的内部被处理,然后会显示一个tooltip出来

不过有解决方案,就是主动拦截这个needtext消息,然后注册一个timer,过一段时间以后再次发送这个消息到treeview

或者干脆完全拦截needtext,然后注册TreeNodeMouseHover自己来处理hover的行为,你也可以做一些优化


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11315373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存