首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#,Windows :在单击事件中使用ShowBalloonTip的NotifyIcon不再触发DoubleClick事件

C#,Windows :在单击事件中使用ShowBalloonTip的NotifyIcon不再触发DoubleClick事件
EN

Stack Overflow用户
提问于 2011-01-12 15:27:05
回答 3查看 4.9K关注 0票数 0

在Windows /C#/.NET Framework2.0中使用NotifyIcon时,如果我在MouseClick或Click事件中显示气球提示文本,则不会触发任何DoubleClick或MouseDoubleClick事件:

代码语言:javascript
复制
    private void notifyIcon_DoubleClick(object sender, EventArgs e)
    {
        MessageBox.Show("double click"); // this is never called on double-click
    }

    private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        MessageBox.Show("mouse double click"); // this is never called on double-click
    }

    private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            this.notifyIcon.BalloonTipText = "Some Info";
            this.notifyIcon.ShowBalloonTip(1000);
        }
    }

如果双击“通知”图标,就会得到显示/刷新两次的气球提示,但没有消息框。

我正在使用Visual 2010和Windows 7终极64位.

提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-12 15:39:02

您需要检查一下是否是notifyIcon_MouseClick中的双击

代码语言:javascript
复制
 private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left) 
        {
          if (e.Clicks < 2) //not a doubleclick
          {
              this.notifyIcon.BalloonTipText = "Some Info";
              this.notifyIcon.ShowBalloonTip(1000);
          }
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2013-02-27 18:19:43

这可能是个窃听器。我不知道该怪谁。

e.Clicks在调用notifyIcon.ShowBalloonTip时为零。如果向显示气球提示提供了无效的参数,则会将异常写入控制台,e.Clicks最终将超过1。

我正在使用的罗技g5鼠标固件1.2。这不是罗技设置点软件。回滚到微软的驱动程序,也没有帮助。

我正在运行.NET框架4.0、windows 7 64位和Visual 2010。

这是个很奇怪的虫子。有时,完全相同的构建有时不会显示错误。在同一会话中,可以再次发生这种情况。重建之后,bug再次出现。

票数 0
EN

Stack Overflow用户

发布于 2014-11-08 07:43:29

这确实是个虫子。我找到了一个比任何建议都好的解决办法。根本不要尝试从Click或DoubleClick事件中启动该DoubleClick。相反,您可以全局创建一个布尔标志,然后在Click事件中设置标志。还创建一个定期触发的Timer(),对我来说,每1000毫秒就可以了。当计时器触发时,它会检查标志,如果设置了标志,则相应地触发ShowBalloonTip(),并重置标志。这不会破坏单击或DoubleClick行为,并且仍然可以通过在NotifyIcon上的Click或DoubleClick事件中发生的更改来实现BalloonTip所需的行为。对我来说很好!对不起,我没有很容易提供的代码片段,但是这个描述应该给出如何轻松地完成它的想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4670506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档