我需要爲我的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事件Silverlight
- 2. ASPxTextBox KeyDown事件
- 3. jQuery keydown事件
- 4. keydown事件:與「@」
- 5. Keydown事件Javascript?
- 6. 在keydown事件
- 7. DataGridView KeyDown事件
- 8. KeyDown事件綁定到用戶控件
- 9. Keydown標籤事件
- 10. Keydown事件 - 降溫
- 11. KeyDown和KeyUp事件
- 12. KeyDown事件和drag'n'drop
- 13. Silverlight Smooth KeyDown事件
- 14. keydown事件代碼
- 15. 模擬keydown事件
- 16. C#radiobutton keydown事件
- 17. KeyPress和KeyDown事件
- 18. 調用KeyDown事件
- 19. 帆布keydown事件
- 20. Mvvm TextBox KeyDown事件
- 21. 的jQuery keydown事件綁定 - 住VS的keydown
- 22. 防止KeyDown事件確定的SendKeys
- 23. 解除綁定(覆蓋)keydown事件
- 24. 何時拋出JQuery keydown事件?
- 25. 表單不活動時Keydown事件
- 26. KeyDown事件的延遲計時器
- 27. 可可 - 只有特定窗口的鼠標事件? KeyDown事件?
- 28. Keydown事件和定時器在一起工作不好
- 29. jQuery keydown事件禁用
- 30. keydown事件上的鍵碼
是的,泰克你提醒我!我非常學習C#和所有的框架,我完全忘記接受anwser :) – no9 2010-05-13 07:03:43