繁体   English   中英

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

[英]I have made a notifyicon in my application but i want to make it stay in system tray when application closes

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

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

看看这个问题的答案

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

让它从托盘开始不应该比这更多,并尝试覆盖关闭事件,以便在窗口关闭时执行此操作

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

它对我很好

表单属性窗口

这是我写的代码:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM