7

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

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

4

3 回答 3

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);
}

要在鼠标悬停时显示气球,您可能需要在 mousemove 图标中使用与上面相同的代码。

注意:如果您想在不同点更改消息,ShowBalloonTip 会被重载。气球显示的消息将尊重换行符,例如 Environment.NewLine 可以添加到它。

于 2009-08-18T23:17:41.257 回答
3

尝试

尽量减少

this.WindowState = FormWindowState.Minimized;

最小化到托盘看到这个

最小化托盘 C# WinForms 应用程序的正确方法是什么?

再见

于 2009-08-18T23:07:08.300 回答
0

弹出气球将显示表单标题栏中显示的任何内容(这是表单的 .Text 属性)。我不知道有什么方法可以让它多行(如果有的话,它肯定会很复杂,而且可能不值得麻烦)。

这个较早的问题为基本问题提供了一些答案。您的工具箱包含一个名为NotifyIcon的控件- 使用它在系统托盘中放置一个图标。

于 2009-08-18T23:10:27.310 回答