最小化到系统托盘

时间:2014-04-23 13:26:51

标签: c# system-tray notifyicon minimized

我正按照page

的说明进行操作

但是,然后,该应用程序没有附加图标,因此在隐藏表单后,我无法重新显示表单,因为系统托盘上没有图标,

我该如何解决这个问题?

这是我的代码

 private void Form1_Resize(object sender, EventArgs e)
    {
        if (FormWindowState.Minimized == this.WindowState)
        {
            notifyIcon1.Visible = true;
            cmd.cetakSukses(ident.judul_App + " Diperkecil ke dalam System Tray");
            notifyIcon1.BalloonTipText = ident.judul_App + " Diperkecil ke dalam System Tray";
            notifyIcon1.BalloonTipTitle = ident.judul_App;
            notifyIcon1.BalloonTipIcon = ToolTipIcon.Error;
            notifyIcon1.ShowBalloonTip(500);                
            this.Hide();
        }
        else
        {                

        }
    }

更新:

我已附上图标,图标仍未显示在系统托盘上

enter image description here

我知道如何显示表单,我需要将以下代码添加到notifyicon

 private void notifyIcon1_DoubleClick(object sender, EventArgs e)
    {
        this.Show();
    }

3 个答案:

答案 0 :(得分:1)

您可以使用“属性”表设置设计时的通知图标:

Notify Icon Properties

或者您可以使用以下代码在运行时添加/更改icon property

notifyIcon1.Icon = new Icon("appicon.ico");

答案 1 :(得分:0)

您需要使用visual studio或以编程方式为应用程序提供图标。

您可以通过转到项目属性并选择应用程序选项卡

在VS中执行此操作

或者,如果已经在项目中附加了图标文件,则可以在运行时进行设置。

private NotifyIcon appIcon = new NotifyIcon();

appIcon.Icon = new System.Drawing.Icon("myApp.ico");

答案 2 :(得分:0)

这是我通过WPF应用程序的代码实现的方式。

    System.Windows.Forms.NotifyIcon m_NotifyIcon;

    public StartWindow()
    {
        InitializeComponent();

        m_NotifyIcon = new System.Windows.Forms.NotifyIcon();
        m_NotifyIcon.Icon = new System.Drawing.Icon(IconPath);
        m_NotifyIcon.Visible = true;
        m_NotifyIcon.BalloonTipTitle = "Tip here";
        m_NotifyIcon.Text = "Text here";

        m_NotifyIcon.DoubleClick += delegate(object sender, EventArgs args)
        {
            this.Show();
            this.WindowState = WindowState.Normal;
        };
    }

    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        try
        {
            if (m_NotifyIcon != null)
                m_NotifyIcon.Dispose();
        }
        catch { }

        base.OnClosing(e);
    }

    protected override void OnStateChanged(EventArgs e)
    {
        if (WindowState == WindowState.Minimized)
            this.Hide();

        base.OnStateChanged(e);
    }