C#winform实现系统托盘后台运行功能

C#winform实现系统托盘后台运行功能,就是一运行,就直接到系统托盘的位置,程序在后台运行

0

4个回答

窗体的Shown方法里加上this.Hide();就可以了

-2
caozhy
weixin_45841714 真是无赖一个,回答了,然后自己采纳自己。
大约 4 年之前 回复

用NotifyIcon控件。在其中的click写this.Show
在FormLoad里面写this.Hide

0

NotifyIcon托盘控件
在form_load方法里面 this.hide(); 隐藏主界面

0

对这个需求完全可以在单击“关闭”按钮的时候弹出一个对话框,来让用户确定是否真的要退出。这是一个很好的解决方法,并且实现也是很容易的。但是人家不想这样,想要拥有类似QQ在托盘区后台运行的那种效果,没办法,只能想办法来实现了。www.2cto.com

其实,这个在网上也有很多的实现方法,但是我试了试有些直接复制过来并不能直接运行,或者能运行的吧又没有注释。今天在这里就给大家贴一下我的代码,也有不足之处,希望大家给出意见.

[csharp]

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;

using System.Windows;

namespace winform窗体托盘后台运行

{

public partial class Form1 : Form   

{  

    //这里在窗体上没有拖拽一个NotifyIcon控件,而是在这里定义了一个变量  

    private NotifyIcon notifyIcon = null;  



    public Form1()  

    {  

        InitializeComponent();  

        //调用初始化托盘显示函数  

        InitialTray();  

    }  



    private void Form1_Load(object sender, EventArgs e)  

    {  

        //这里写其他代码  

    }  www.2cto.com



    /// <summary>  

    /// 窗体关闭的单击事件  

    /// </summary>  

    /// <param name="sender"></param>  

    /// <param name="e"></param>  

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)  

    {  

        e.Cancel = true;  

        //通过这里可以看出,这里的关闭其实不是真正意义上的“关闭”,而是将窗体隐藏,实现一个“伪关闭”  

        this.Hide();  

    }  



    private void InitialTray()  

    {  

        //隐藏主窗体  

        this.Hide();  



        //实例化一个NotifyIcon对象  

        notifyIcon = new NotifyIcon();  

        //托盘图标气泡显示的内容  

        notifyIcon.BalloonTipText = "正在后台运行";     

        //托盘图标显示的内容  

        notifyIcon.Text = "窗体托盘后台运行测试程序";  

        //注意:下面的路径可以是绝对路径、相对路径。但是需要注意的是:文件必须是一个.ico格式  

        notifyIcon.Icon = new System.Drawing.Icon("E:/ASP项目/images/3.5 inch Floppy.ico");  

        //true表示在托盘区可见,false表示在托盘区不可见  

        notifyIcon.Visible = true;  

        //气泡显示的时间(单位是毫秒)  

        notifyIcon.ShowBalloonTip(2000);              

        notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseClick);  



        ////设置二级菜单  

        //MenuItem setting1 = new MenuItem("二级菜单1");  

        //MenuItem setting2 = new MenuItem("二级菜单2");  

        //MenuItem setting = new MenuItem("一级菜单", new MenuItem[]{setting1,setting2});  



        //帮助选项,这里只是“有名无实”在菜单上只是显示,单击没有效果,可以参照下面的“退出菜单”实现单击事件  

        MenuItem help = new MenuItem("帮助");  



        //关于选项  

        MenuItem about = new MenuItem("关于");  



        //退出菜单项  

        MenuItem exit = new MenuItem("退出");  

        exit.Click += new EventHandler(exit_Click);  



        ////关联托盘控件  

        //注释的这一行与下一行的区别就是参数不同,setting这个参数是为了实现二级菜单  

        //MenuItem[] childen = new MenuItem[] { setting, help, about, exit };  

        MenuItem[] childen = new MenuItem[] {help,about,exit};  

        notifyIcon.ContextMenu = new ContextMenu(childen);  



        //窗体关闭时触发  

        this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);  

    }  



    /// <summary>  

    /// 鼠标单击  

    /// </summary>  

    /// <param name="sender"></param>  

    /// <param name="e"></param>  

    private void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)  

    {  

        //鼠标左键单击  

        if (e.Button == MouseButtons.Left)  

        {  

            //如果窗体是可见的,那么鼠标左击托盘区图标后,窗体为不可见  

            if (this.Visible == true )  

            {  

                this.Visible = false;  

            }  

            else  

            {  

                this.Visible = true;  

                this.Activate();  

            }  

        }  

    }  



    /// <summary>  

    /// 退出选项  

    /// </summary>  

    /// <param name="sender"></param>  

    /// <param name="e"></param>  

    private void exit_Click(object sender, EventArgs e)  

    {  

        //退出程序  

       System.Environment.Exit(0);    

    }  

}  

}

-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行)
今天遇到了一个需求,如果用户不小心点击了“关闭”按钮,但是他的本意不是想要真的关闭这个窗体。   对这个需求完全可以在单击“关闭”按钮的时候弹出一个对话框,来让用户确定是否真的要退出。这是一个很好的解决方法,并且实现也是很容易的。但是人家不想这样,想要拥有类似QQ在托盘区后台运行的那种效果,没办法,只能想办法来实现了。   其实,这个在网上也有很多的实现方法,但是我试了试有
QT如何实现后台运行(即最小化到右下角托盘)
QT如何实现后台运行(即最小化到右下角托盘)  第一期: 用hello world简单的代码更容易看懂托盘的具体实现,一些细节问题,比如为什么提示消息没有显示在托盘上,如何在tip消息上增加图标等。 #include class myclass: public QWidget { public:         myclass(); priva
C#Winform实现托盘
一:从工具栏里,把NotifyIcon控件拖到窗体上,并设置属性:    1、visible 设置默认为FALSE;    2、Image 选一张图片为托盘时显示的图样;比如选奥巴马卡通画像;    3、Text  显示:托盘的实现 二:窗体大小改变    1、窗体最小化时,托盘出现;    2、窗体其它状态时,托盘不出现; 代码如图: 三:双击托盘,窗体还原选中控件NotifyIcon,选择事件...
后台运行系统托盘功能
后台运行系统托盘功能,有注释,我写的最新一篇里有专门解释这个
C#WinForm程序设计——系统托盘NotifyIcon控件(二)
   这篇文章继续介绍系统托盘NotifyIcon的使用,项目实现效果为:最小化窗体时,在系统托盘区域显示程序图标,并有气球提示,时间为30秒。效果如图,具体实现如下:1、创建一个新的项目From1;修改其Text属性为“系统托盘演示”,修改其ShowInTaskbar属性为False,为其添加一个图标。 2、添加一个NotifyIcon控件NotifyIcon1,修改其Text属性为“系统托盘演...
c# 程序后台运行
请把notifyIcon与button拖至窗口里后,在使用下面的代码 private bool windowsCreate = true; private void button3_Click(object sender, EventArgs e) //点击时会隐藏窗口 { if (windowsCreate) {
C#WinForm - 最小化或关闭时隐藏到系统托盘
C#WinForm - 最小化或关闭时隐藏到系统托盘   STEP1、添加托盘图标控件NotifyIcon(直接从工具箱中拖动添加即可) STEP2、添加(重写)窗口尺寸变动函数Form1_Resize         private void Form1_Resize(object sender, EventArgs e)         {         
C# 系统应用之窗体最小化至任务栏及常用操作
C# 系统应用之窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,右键能关联控件显示3个常用功能最小化至任务栏并在系统托盘区留下图标,
VMware虚拟机关闭后托盘运行设置
实验使用linux系统,想使用putty通过ssh连接虚拟机,此时,在终端下运行即可,图形界面可以不打开,我在百度时看到可以保持运行的虚拟机在托盘运行,不用占用下面任务栏的地方,看起来比较舒服一些,VMware虚拟机本身自带这一选项,设置如下图。                 打开虚拟机,依次选中 编辑(Edit) -> 首选项(Preferences...) -> Workspaces(左侧
WPF应用最小化至系统托盘运行
WPF应用要实现最小化至系统托盘运行需要使用WinForm中的方法。using System.Windows.Forms; namespace ServerApp { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window {
C#实现托盘程序并禁止多个应用实例运行的方法
托盘程序的制作:1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果)2.窗体关闭时,将程序最小化到系统托盘上?12345678private void Form1_FormClosing(object sender, FormClosingEventArgs e){  //MessageBox.Show(&quot;程序将最小化到系统托盘区&quot;);...
C# WinForm窗口最小化到系统托盘右击托盘图标弹出退出菜单
1. 在Form上加notifyicon控件myIcon,为控件的属性Icon添加一个icon图标, Text为鼠标在图标上时显示的名字。  2. 添加ContextMenuStrip控件myMenu,右键托盘图标弹出菜单,设置myIcon的ContextMenuStrip属性为myMenu。在myMenu中添加item(退出)。  private void Form1_FormClosi
c#winform中怎么将程序最小化到系统托盘
c#winform中怎么将程序最小化到系统托盘
Linux Mint使用Thunderbird必不可少的系统托盘插件
最近从Ubuntu换到Mint。之前在Ubuntu的时候,Thunderbird有一个托盘图标,是一个信封的样子,在输入法那里。但是切换到Mint后,发现Thunderbird不支持这种图标了。几经波折,终于得知Thunderbird有一个FireTray扩展,可以像Windows那样把程序缩小到系统托盘,而且还可以提醒新邮件,之前Ubuntu虽然有一个托盘图标,不过好像从来没见它提醒过新邮件。
Qt 实现系统托盘,托盘菜单,托盘消息
Qt 实现系统托盘,托盘菜单,托盘消息             系统托盘就是运行的某个程序在电脑右下角的小图标,相信大家都很熟悉。QT 提供了QSystemTrayIcon类用于实现程序的托盘。QT提供了托盘示例,在examples文件夹下面,大家可以自行研究。        下面是我自己进行实现的一个示例,主要实现的功能:         1.托盘显示,托盘图标添加;         2
Qt应用程序退出到系统托盘
弹出询问框是否退出到系统托盘 现在很多软件都是退出以后在系统托盘后台挂起,我们也来实现一下 用到了Qt的类 QSystemTrayIcon The QSystemTrayIcon class provides an icon for an application in the system tray. Modern operating systems usually provide a s...
C#-WinForm设置托盘程序
背景现在很多程序都有这样的托盘程序 窗体关闭时,并不真正关闭程序,只是任务栏不显示该应用程序,在右下侧托盘里显示; 双击托盘,窗体还原; 右击窗体,出现托盘菜单,实现最小化,最大户,还原,退出等。 这样的功能C#winform怎样实现呢 ?实现WinForm中托盘菜单由NotifyIcon控件来实现,右键菜单由contextMenuStrip来实现,我们将二者相关联,即可实现我们所期望功能的
JavaFx 添加系统托盘图标
//添加系统托盘图标. SystemTray tray = SystemTray.getSystemTray(); BufferedImage image = ImageIO.read(mainUi.class .getResourceAsStream("orange-ball.png")); trayIcon = n
windows 服务与系统托盘之间的交互
有的时候我们需要自己写服务,而且需要给绑定一个 托盘!用来更加方便的 控制我们的程序!例如 QQ 那种! 下面我来讲一下他们之间是怎么关联的!    有怎么几步!   1,自己写一个服务,(上一篇博客中有详细的介绍,可以去参考!)   2,桌面交互的配置            在serviceInstaller1_Committed事件中添加如下代码:             Conn
C#Winform 最小化到托盘,隐藏当前项目
拖入notifyIcon控件,然后再写双击事件,再写项目主窗体的Resize,代码如下 private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)//notifyIcon控件双击事件 { //this.Visible = false;/
MFC系统托盘的实现
通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如退出。 我看着感觉还是挺酷炫的,所以打算也在我的程序里边添加一个这样的功能。下边我把我自己探索的过程记录一下: 首先,我们需要用到NOTIFYICONDATA类,它是我们实现系统托盘的核心。关于这个
Java swing 仿QQ实现系统托盘图标(上)
最近用java swing仿写QQ,想实现QQ图标显示在系统托盘的效果。研究了一下。废话不多说,进入正题。首先定义窗体: //初始化窗体         JFrame frame=new JFrame("My QQ");         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         f
C#winform 实现PDF阅读功能
C#winform 实现PDF阅读功能
C#winform 实现PDF阅读功能.rar
C#winform 实现PDF阅读功能
java fx 添加系统托盘图标 右键退出
效果图 悬停: ​​ SystemTray tray = SystemTray.getSystemTray(); PopupMenu pm = new PopupMenu(); //设置图标 BufferedImage image = ImageIO.read(Main.clas...
如何使程序最小化到系统托盘
最近自己利用activemovie制作了一个简单的音乐播放器,希望像qq,千千静听,暴风影音那样程序最小化时在系统托盘中显示而不是在任务栏中。如下: 1.在基于对话框的程序的头文件中添加成员变量 NOTIFYICODATA m_nid 2.自定义消息函数OnShowTask  1)首先在头文件中定义 #define WM_SHOWTASK WM_USER+1  2)在头文件映射中在添加 a
C#WinForm 藏到系统托盘
1 添加Form1_Load事件-启动不显示图标 private void Form1_Load(object sender, EventArgs e) { notifyIcon1.Visible = true; //显示托盘图标 this.Hide(); //隐藏窗口 } 2
最近一段时间用到的一些新知识点,多屏显示功能,后台运行系统托盘功能,excel表格导入功能
最近一段时间在做一个新的小项目,虽然整体来说不是很难,但是还是遇到几个自己之前没做到的功能,琢磨了半天才弄出来,现记录下来了以备以后用的上 1.多屏显示功能    一开始要实现这个的时候觉的这个真的好高大上,但是当完成之后发现,其实这些微软都帮我们封装好了 Screen[] sc;//显示器 sc = Screen.AllScreens;
用SWT实现系统托盘(改进版)
Eclispe的SWT和JFace功能非常强大,可以开发出相当漂亮的GUI应用程序。本文用SWT实现了Windows任务栏的系统托盘功能。添加了托盘右击菜单,当窗口最小化时隐藏窗口在任务栏的显示。import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.events.
Java swing 仿QQ实现系统托盘图标(下)
接着上次更新的java swing 仿QQ实现系统托盘图标(上),现在更新下篇,主要为托盘图标的弹出菜单添加菜单项图标。 TrayIcon只能添加PopupMenu弹出菜单,而PopupMenu弹出菜单不能为菜单项(MenuItem)添加图标。 本人想到的解决方法就是自己写个MyTrayIcon类,此类继承TrayIcon,以JDialog作为弹出菜单的显示媒介。 再更新一下原来的部分,把TrayIcon替换为MyTrayIcon,再为菜单项添加监听器
FTPFileUpLoad
实现了文件上传到FTP服务器的功能,C#winform的小示例程序。
Ubuntu:如何显示系统托盘图标(systray)
本文说明Ubuntu中如何显示系统托盘图标。
VC++系统托盘简单实现介绍
VC++系统托盘简单实现介绍              托盘程序:就是屏幕右下角任务栏显示的一些小图标的程序。这些程序不用时,放到托盘里,随用随叫,不必将其关闭。    托盘编程主要用到的数据和方法介绍:         就是在托盘区绘制一个图标,然后把程序隐藏不见,当对托盘的图标进行操作时,对相关消息进行处理。    第一: 函数:          WINSHELLAPI B
C#winform 实现PDF阅读功能__(0521).rar
C#winform 实现PDF阅读功能__(0521).rar
C#winform 实现PDF阅读功能__0525).rar
C#winform 实现PDF阅读功能__0525).rar
C#winform 实现PDF阅读功能(0515).rar
C#winform 实现PDF阅读功能(0515).rar
C#winform 实现PDF阅读功能2019
C#winform 实现PDF阅读功能2019
C#winform 实现PDF阅读功能(0520_).rar
C#winform 实现PDF阅读功能(0520_).rar
系统托盘显示
package com.dinglin; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java...
Java Swing系统托盘的使用
import java.awt.*; import java.awt.event.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import java.util.TimerTask; import javax.swing.*; public class
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 云计算的功能 区块链功能