Сворачивание в системный трей

я следовал инструкциям на странице

но тогда к приложению не прикреплен значок, поэтому после того, как форма скрыта, я не могу повторно отобразить форму, так как на панели задач нет значка,

как мне решить это?

вот мой код

 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
        {                

        }
    }

Обновить :

Я прикрепил значок, но значок все еще не отображается на панели задач

введите здесь описание изображения

и я понял, как сделать отображение формы, мне нужно добавить следующий код в notifyicon

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

person Cignitor    schedule 23.04.2014    source источник
comment
@MarioStoilov я имею в виду значок на панели задач, поэтому, когда мы дважды щелкнем значок на панели задач, появится показанная форма.   -  person Cignitor    schedule 23.04.2014
comment
Я имел в виду, вы пытались просто прикрепить значок. Логично, что если бы у вас не была установлена ​​иконка, в трее нечего было бы показывать.   -  person Mario Stoilov    schedule 23.04.2014
comment
@Cignitor, вы добавили значок для формы. Вам нужно добавить значок в элемент управления NotifyIcon. Смотрите мой ответ ниже.   -  person Black Frog    schedule 23.04.2014
comment
Системный трей? Что это? Вы имеете в виду область уведомлений? Пожалуйста, не делайте этого, вы злоупотребляете назначением области уведомлений. Пожалуйста, не загромождайте эту область, она предназначена для уведомления пользователя о вещах, требующих действий. Используйте панель задач, когда хотите свернуть приложение (это то, что ожидают пользователи).   -  person Skizz    schedule 23.04.2014


Ответы (3)


Вы можете установить значок уведомления в дизайне, используя лист свойств:

Уведомление о свойствах значка

Или вы можете добавить/изменить свойство icon во время выполнения, используя следующий код:

notifyIcon1.Icon = new Icon("appicon.ico");
person Black Frog    schedule 23.04.2014
comment
о да, я следовал вашей инструкции, значок был там, на панели задач, но тогда нет возможности показать форму, я дважды щелкнул значок, форма не отображается. - person Cignitor; 23.04.2014
comment
Вам необходимо добавить код в NotifyIcon.DoubleClick Событие для изменения видимости формы. - person Black Frog; 23.04.2014

Вот как я реализовал код для приложения 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);
    }
person Paul Thethi    schedule 23.04.2014

Вам нужно дать значок приложения либо с помощью визуальной студии, либо программно.

Вы можете сделать это в VS, перейдя в свойства проекта и выбрав вкладку приложения

Или вы можете установить его во время выполнения, если у вас уже есть файлы значков, прикрепленные к вашему проекту.

private NotifyIcon appIcon = new NotifyIcon();

appIcon.Icon = new System.Drawing.Icon("myApp.ico");
person haxtbh    schedule 23.04.2014