我已经在我的应用程序中创建了一个notifyicon,但我想让它在应用程序关闭时保留在系统托盘中

时间:2016-10-23 17:58:29

标签: c# windows winforms

我已经在我的应用程序中创建了一个notifyicon,但是当应用程序关闭时,我想让它在系统中陷入困境任何人都知道如何解决这个问题?谢谢。 (如果您需要知道,请使用c#)

是否有可能在Windows启动时将应用程序作为托盘启动?

2 个答案:

答案 0 :(得分:0)

看看this question's answers

  

处理表单的Resize事件。在此处理程序中,您将覆盖Resize事件的基本功能,以使表单最小化到系统托盘而不是任务栏。这可以通过在表单的Resize事件处理程序中执行以下操作来完成:检查表单的WindowState属性是否设置为FormWindowState.Minimized。如果是,请隐藏表单,启用NotifyIcon对象,并显示显示某些信息的气球提示。一旦WindowState变为FormWindowState.Normal,通过将其Visible属性设置为false来禁用NotifyIcon对象。现在,您希望在双击任务栏中的NotifyIcon对象时再次出现该窗口。为此,处理NotifyIcon的MouseDoubleClick事件。在这里,您使用Show()方法显示表单。

让它从托盘开始不应该远远超过这个,并且在窗口关闭时尝试覆盖Closing事件来执行此操作

答案 1 :(得分:0)

在启动表单中将ShowInTaskbar属性更改为False 并且windowsState最小化,因此它将是不可见的

与我合作很好

Form Properties Window

这是我写的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{

    bool m_CloseApp = false;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {if (m_CloseApp == false) { 
       e.Cancel = true;
    this.WindowState = FormWindowState.Minimized;
    }
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        m_CloseApp = true;
        this.Close();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
        this.WindowState = FormWindowState.Minimized;
    }
}
}

当用户关闭Form时,应用程序将不会退出,但是当他从notifyIcon的ContextMenuStrip中点击Exit按钮时,应用程序将被关闭