C#Visual Studio:ShowBalloonTip在Windows 10中不起作用

时间:2018-03-26 20:17:35

标签: c#

我的应用程序上有一个notifyicon,并尝试显示一个ballontip,在Windows 7和Windows 8.1上运行正常,但我无法在Windows 10中运行。

尝试编辑注册表,增加超时,设置气球提示图标并禁用通知作为祝酒词。

这是组件初始化的方式:

private void InitializeComponent()
  {
  // notifyIcon1
  // 
  this.notifyIcon1.ContextMenuStrip = this.trayMenu;
  this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
  this.notifyIcon1.Visible = true;
  this.notifyIcon1.BalloonTipClicked += new System.EventHandler(this.notifyIcon1_BalloonTipClicked);
  this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDoubleClick);

这就是我试图展示气球提示的方式:

    void hideToTray()
{
  notifyIcon1.BalloonTipTitle = SerialDevMan;
  notifyIcon1.BalloonTipText = "Double-click to restore";

  notifyIcon1.Visible = true;
  notifyIcon1.ShowBalloonTip(2000);
  this.Hide();
}

编辑:

经过一整天的努力,我找到了解决方案。

我创建了一个名为now" notifyicon2"的新的notifyicon工具。并将所有代码复制到新图标并且工作正常。但当我删除第一个时,第二个停止工作...恢复第一个没有使第二个工作再次。

创建了一个新的notifyicon,再次完成所有操作,只要我在表单上看不到另一个图标,它就会正常工作。

也许这是一个Windows 10的错误,或者是我现在看不到的东西,我现在会保留我的项目。

3 个答案:

答案 0 :(得分:0)

您可以尝试一些检查:

  1. 启用推送通知服务
  2. 通知图标属性=可见(已在您的情况下检查过)
  3. 行动中心需要关闭安静时间
  4. 编辑:

    1. 按Win + R>输入“gpedit.msc”>导航到用户配置>管理模板>开始菜单和任务栏>通知> ENABLE 禁止将气球通知显示为祝酒词
    2. 让我知道它是否有效!

答案 1 :(得分:0)

这些都不能解决我的问题:(

但是偶然地我修好了它!我的问题是我将我的项目配置为在64位平台上使用32位,并且无论出于何种原因,它们仅在为任何CPU(在这种情况下为64位)运行项目时才会显示!

希望对您有所帮助,这对我来说确实是个谜...

答案 2 :(得分:0)

在X64或X32 Solution平台上将解决方案配置“调试模式更改为发布模式”。它将开始工作。

public static NotifyIcon trayIcon;
 trayIcon = new NotifyIcon();
 trayIcon.Icon = new Icon("Images/Test.ico");
 trayIcon.Visible = true; trayIcon.Text=Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName);
 ContextMenu contextMenu1 = new ContextMenu();
contextMenu1.MenuItems.Add("Menu2", Menu2_Event);
contextMenu1.MenuItems.Add("Menu3", Menu3_event);
contextMenu1.MenuItems.Add("Exit", Close_Click);
trayIcon.ContextMenu = contextMenu1;
trayIcon.BalloonTipText = "Hi Test";
trayIcon.ShowBalloonTip(1000);