单击按钮时应用程序最小化到系统托盘?

时间:2009-08-18 23:00:51

标签: c# tooltip system-tray minimize

如何让我的应用程序最小化到WindowsXP / Vista中的系统托盘?

我也在寻找一种方法,当鼠标悬停在图标上时,可以显示消息。弹出气球中是否可以有两条线?

3 个答案:

答案 0 :(得分:10)

我认为你的意思是最小化到系统托盘,因为你已经谈过了图标和消息气球?

以下代码将设置一个托盘图标:

private void SetUpTrayIcon()
{
    notifyIcon = new System.Windows.Forms.NotifyIcon();
    notifyIcon.BalloonTipText = "Ballon minimize text";
    notifyIcon.BalloonTipTitle = "Ballon minimize title";
    notifyIcon.Text = "Icon hover text";
    notifyIcon.Icon = new  System.Drawing.Icon(
               System.Reflection.Assembly.GetExecutingAssembly()
                   .GetManifestResourceStream("MyIcon.ico"));
    notifyIcon.Click += new EventHandler(HandlerToMaximiseOnClick);
}

要显示托盘中的图标(例如,您可能希望在窗口状态更改事件中执行此操作,请执行以下操作:

if (notifyIcon != null)
{
    notifyIcon.Visible = true;
    notifyIcon.ShowBalloonTip(2000);
}

要在鼠标悬停时显示气球,您希望在鼠标移动中使用与上面相同的代码来获取图标。

注意:如果要在不同点更改消息,则会重载ShowBalloonTip。气球显示的消息将遵循换行符,例如可以添加Environment.NewLine。

答案 1 :(得分:3)

最小化

this.WindowState = FormWindowState.Minimized;

最小化到托盘看到这个

What's the proper way to minimize to tray a C# WinForms app?

再见

答案 2 :(得分:0)

弹出气球将显示表单标题栏中显示的内容(表单的.Text属性)。我不知道有什么办法让它变得多线(如果有办法,它肯定会很复杂,可能不值得麻烦)。

This earlier question给出了一些基本问题的答案。您的工具箱包含一个名为 NotifyIcon 的控件 - 使用此控件在系统托盘中放置一个图标。