1

こんにちは、

アプリケーション全体にバルーンチップを作成します。私の問題は、すべてのバルーンチップがタスクバーにとどまり、それらが消えるにはカーソルを合わせる必要があるということです。

        public static bool SetBalloonTip(string balloonTipTitle, string balloonTipText, ToolTipIcon balloonTipIcon)
    {
        bool result = false;
        NotifyIcon notifyIcon;

        try
        {
            notifyIcon = new NotifyIcon();

            notifyIcon.Icon = SystemIcons.Information;
            notifyIcon.BalloonTipTitle = balloonTipTitle;
            notifyIcon.BalloonTipText = balloonTipText;
            notifyIcon.BalloonTipIcon = balloonTipIcon;

            notifyIcon.Visible = true;
            notifyIcon.ShowBalloonTip(30000);

            result = true;
        }
        catch (Exception)
        {

            throw;
        }

        return result;
    }

私の質問は、通知アイコンが表示された後に非表示にするにはどうすればよいですか?

4

3 に答える 3

2

一度に複数のバルーンを表示していますか?

MSDNから:

タスクバーに一度に表示できるバルーンチップは1つだけです。現在タスクバーにバルーンチップが表示されているときにバルーンチップを表示しようとすると、タイムアウト値が無視されます。

http://msdn.microsoft.com/en-us/library/ms160064.aspx

于 2011-03-03T17:18:12.800 に答える
2

解決策を見つけました:

最初:

private static System.ComponentModel.IContainer components;

2番:

public static bool SetBalloonTip(string balloonTipTitle, string balloonTipText, ToolTipIcon balloonTipIcon)
    {
        bool result = false;
        NotifyIcon notifyIcon;

        try
        {
            if (components == null)
            {
                components = new System.ComponentModel.Container();
            }

            notifyIcon = new NotifyIcon(components);

            notifyIcon.Icon = SystemIcons.Information;
            notifyIcon.BalloonTipTitle = balloonTipTitle;
            notifyIcon.BalloonTipText = balloonTipText;
            notifyIcon.BalloonTipIcon = balloonTipIcon;

            notifyIcon.Visible = true;
            notifyIcon.ShowBalloonTip(30000);

            result = true;
        }
        catch (Exception)
        {

            throw;
        }

        return result;
    }

第3:

        public static void DisposeOfBallonTips(bool disposing)
    {
        try
        {
            // Clean up any components being used.
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
        }
        catch (Exception)
        {

            throw;
        }
    }

DisposeOfBallonTipsすべてをクリーンアップしたいときに呼び出しますNotifyIcons

于 2011-03-04T10:04:44.343 に答える
0

私はほとんど推測していますが、これを試してください

このようなイベントハンドラーを追加して、それが役立つかどうかを確認します。

     ...
     ... 
     notifyIcon.BalloonTipClosed += new EventHandler(notifyIcon_BalloonTipClosed);
     notifyIcon.ShowBalloonTip(30000);
     ...
}



static void notifyIcon_BalloonTipClosed(object sender, EventArgs e)
{
    ((NotifyIcon) sender).Visible = false;
}
于 2011-03-03T17:32:46.973 に答える