【发布时间】:2014-05-04 14:49:59
【问题描述】:
我创建了系统托盘图标并添加了两次单击事件双击,单击。我试过鼠标点击和正常点击。
SysTray.MouseClick += new MouseEventHandler(SysTray_MouseClick);
SysTray.MouseDoubleClick += new MouseEventHandler(SysTray_MouseDoubleClick);
void SysTray_MouseClick(object sender, MouseEventArgs e)
{
SingleClick = true;
if (e.Button == MouseButtons.Left)
{
System.Threading.Thread.Sleep(300);
if (SingleClick)
{
//To Do
}
}
}
void SysTray_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
SingleClick = false;
System.Threading.Thread.Sleep(20);
//To Do
}
}
如果我双击系统托盘图标,它将自动执行单击图标。
如何解决双击/单击问题
【问题讨论】:
-
双击总是从单击开始。如果用户点击的速度足够快,那么第二次点击就会变成双击。您将需要在您的 UI 设计中适应这一点。一个愚蠢的技巧是在 MouseClick 事件中启动 Timer。在双击事件处理程序中停止计时器,使用 Tick 事件进行单击动作。然而,这效果不佳,因为用户不会理解为什么他的点击响应如此缓慢。请改用上下文菜单。
标签: c# .net system-tray