我需要爲我的CF應用程序提供一個事件,這會在用戶按住手指按住控件兩秒鐘後觸發。我可以使用什麼事件,因爲keyDown事件已經被使用。CF keyDown事件(定時)
1
A
回答
2
那麼,KeyDown對於捕獲手指按下的時間長度來說是非常不相關的。手指的使用涉及事件Click
,MouseDown
,MouseUp
和MouseMove
。
爲了得到你想要的行爲,你應該感興趣的事件是MouseDown
和MouseUp
。
我建議最好的方法是創建自己的控件基類。這裏有一個我早些時候(未測試,但應該給你做什麼總體思路):
public partial class BaseControl : UserControl
{
public BaseControl()
{
InitializeComponent();
base.MouseDown += new MouseEventHandler(BaseControl_MouseDown);
base.MouseUp += new MouseEventHandler(BaseControl_MouseUp);
MouseHeldTimer = new Timer();
MouseHeldTimer.Interval = 2000;
MouseHeldTimer.Tick += new EventHandler(mouseHeldTimer_Tick);
}
protected Timer MouseHeldTimer;
protected bool MouseIsDown;
void mouseHeldTimer_Tick(object sender, EventArgs e)
{
this.MouseHeldTimer.Enabled = false;
if (this.MouseHeldDown != null)
{
this.MouseHeldDown(sender, e);
}
}
void BaseControl_MouseDown(object sender, MouseEventArgs e)
{
this.MouseHeldTimer.Enabled = true;
}
void BaseControl_MouseUp(object sender, MouseEventArgs e)
{
this.MouseHeldTimer.Enabled = false;
}
public event MouseHeldDownHandler MouseHeldDown;
public delegate void MouseHeldDownHandler(object sender, EventArgs e);
}
基本上,MouseHeldTimer將開始2秒的時刻間隔用戶觸摸手指的屏幕。如果用戶擡起他們的手指,則計時器停止。如果用戶的手指停下的時間超過2秒,則代表事件MouseHeldDown
將會觸發。然後,您可以通過以下操作捕捉形式對本次活動:
control.MouseHeldDown+= new EventHandler(control_MouseHeldDown);
另外,如果你只關心形式,你可以使用窗體的DoubleClick
事件作爲將按住鼠標下來了之後火第二或兩個。
+0
thanx爲anwser。是的,我犯了一個錯誤,寫了鑰匙而不是鼠標。您的解決方案完美運作 – no9 2010-05-13 07:02:37
相關問題
- 1. 在keydown事件
- 2. keydown事件:與「@」
- 3. KeyDown事件綁定到用戶控件
- 4. keydown事件代碼
- 5. C#radiobutton keydown事件
- 6. KeyDown事件和drag'n'drop
- 7. Keydown事件 - 降溫
- 8. KeyDown和KeyUp事件
- 9. 模擬keydown事件
- 10. 調用KeyDown事件
- 11. Keydown標籤事件
- 12. KeyDown事件的延遲計時器
- 13. 可可 - 只有特定窗口的鼠標事件? KeyDown事件?
- 14. keydown事件上的鍵碼
- 15. VB6中的WindowsMediaPlayer KeyDown事件
- 16. Silverlight 4 + MVVM + KeyDown事件
- 17. Keydown事件:numpad +,* /按鈕
- 18. keydown事件不起作用
- 19. KeyDown事件不被解僱
- 20. keydown事件如何工作?
- 21. Keydown事件Jquery節點js?
- 22. jQuery keydown事件禁用
- 23. 微分在keydown事件
- 24. 檢測keydown事件(移動)
- 25. 的.Net事件KeyDown C#
- 26. 電子不聽keydown事件
- 27. 假keyvalues通過keydown事件
- 28. JS觸發keydown事件
- 29. Keydown事件在contenteditable段落
- 30. KeyDown事件上的PrintScreen鍵
是的,泰克你提醒我!我非常學習C#和所有的框架,我完全忘記接受anwser :) – no9 2010-05-13 07:03:43