我有一个可垂直拖动的标签页内的用户控件。该控件也是可选的。我希望用户能够点击该项目来选择它,但我不希望MouseClick事件在完成拖动时触发 - 只有MouseUp事件应该触发。 IE浏览器。用户完成拖动后不应选择该项目。有什么建议?MouseMove后防止MouseClick事件
1
A
回答
0
尝试在拖动时使用等于true的拖动布尔值,然后在短暂计时器运行后将其关闭。这样,您可以在MouseClick事件中添加if语句以查看它是否最近被拖动。
1
我假设这是WinForms。
当你说你有一个用户控件时,你的意思是你有一个从UserControl
派生的类吗?在这种情况下,您可以覆盖OnMouseClick
方法,而不是呼叫base.OnMouseClick(e)
,这将阻止MouseClick
开火。
像SAMHI建议,您可以使用在拖动开始时设置为true
一个布尔值,一旦OnMouseClick
被调用,您可以在布尔值设置为false,允许鼠标点击拖动完成后发生。
例子:
public class MyUserControl : UserControl
{
bool dragging = false;
// ...
protected override void OnMouseClick(MouseEventArgs e)
{
if (dragging)
{
// We've finished dragging, don't call MouseClick
dragging = false;
return;
}
// Not dragging, fire MouseClick
base.OnMouseClick(e);
}
}
相关问题
- 1. 防止在MouseDown后发生MouseUp/MouseClick
- 2. HTML5 canvas/jquery mousemove + mouseclick event
- 3. MouseClick事件
- 4. 防止touchmove触发mousemove?
- 5. MouseMove事件可以防止ComboBox被“打开”
- 6. 如何防止ScrollViewer处理后代的MouseMove事件? (Silverlight的用于Windows电话)
- 7. 防止事件
- 8. 如何在bash中获取MouseMove和MouseClick?
- 9. 如何正确停止mousemove事件?
- 10. “鬼” MouseMove事件
- 11. Angular Mousemove事件
- 12. 如何防止dragend后的touchend事件?
- 13. css防止事件
- 14. 返回事件虚假防止事件存在的事后
- 15. WPF TabItem元素MouseClick事件
- 16. 关于Gotfocus和MouseClick事件
- 17. 管理mousever和mouseclick事件
- 18. WPF在CaptureMouse()后不发送MouseMove事件;
- 19. 模拟mousemove事件
- 20. 的Silverlight:如何防止路由从儿童帆布mouseMove事件其父帆布
- 21. mousedown&mouseup事件后,防止点击事件
- 22. 防止碰撞事件发生后的按键事件:
- 23. 如何在调用mouseMove事件的preventDefault后调用mouseup事件?
- 24. Angular - 防止事件循环?
- 25. Javascript:防止keyUp事件
- 26. 防止关键事件
- 27. 防止button_click事件在c#
- 28. jquery点击事件防止
- 29. 防止事件上的flexcroll
- 30. hslider防止键盘事件
您是否使用WPF或ASP.NET?你可以请你展示你的事件处理程序吗? – fenix2222