当前位置: 首页 > 编程笔记 >

WinForm实现最小化到系统托盘方法实例详解

孙福
2023-03-14
本文向大家介绍WinForm实现最小化到系统托盘方法实例详解,包括了WinForm实现最小化到系统托盘方法实例详解的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了WinForm实现最小化到系统托盘方法。分享给大家供大家参考。具体分析如下:

有个叫NotifyIcon的控件

1、建个WinForm项目,其它操作略过。
2、拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件。
3、实现Form的SizeChanged事件,代码如下:

if(this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
this.ShowInTaskbar = false; //不显示在系统任务栏
notifyIcon.Visible = true; //托盘图标可见
}

4、实现NotifyIcon控件的DoubleClick事件,代码如下:

if(this.WindowState == FormWindowState.Minimized)
{
this.ShowInTaskbar = true; //显示在系统任务栏
this.WindowState = FormWindowState.Normal; //还原窗体
notifyIcon.Visible = false; //托盘图标隐藏
}

例题:

private ContextMenu notifyiconMnu;
#region 最小化到任务栏
/// <summary>
/// 最小化到任务栏
/// </summary>
private void Initializenotifyicon()
{
  //定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象 
  MenuItem[] mnuItms = new MenuItem[3];
  mnuItms[0] = new MenuItem();
  mnuItms[0].Text = "显示窗口";
  mnuItms[0].Click += new System.EventHandler(this.notifyIcon1_showfrom);
  mnuItms[1] = new MenuItem("-");
  mnuItms[2] = new MenuItem();
  mnuItms[2].Text = "退出系统";
  mnuItms[2].Click += new System.EventHandler(this.ExitSelect);
  mnuItms[2].DefaultItem = true;
  notifyiconMnu = new ContextMenu(mnuItms);
  notifyIcon1.ContextMenu = notifyiconMnu;
  //为托盘程序加入设定好的ContextMenu对象 
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
  if (this.WindowState == FormWindowState.Minimized)
  {
    this.Show();
    this.ShowInTaskbar = true; 
    this.WindowState = FormWindowState.Normal; 
    notifyIcon1.Visible = false; 
  }
}
public void notifyIcon1_showfrom(object sender, System.EventArgs e)
{
  if (this.WindowState == FormWindowState.Minimized)
  {
    this.Show();
    this.ShowInTaskbar = true;
    this.WindowState = FormWindowState.Normal;
    notifyIcon1.Visible = false;
  }
}
public void ExitSelect(object sender, System.EventArgs e)
{
  //隐藏托盘程序中的图标 
  notifyIcon1.Visible = false;
  //关闭系统 
  this.Close();
  this.Dispose(true);
}
#endregion
private void Form_main_SizeChanged(object sender, EventArgs e)
{
  if (this.WindowState == FormWindowState.Minimized)
  //判断是否最小化
  {
    notifyIcon1.Visible = true;
    this.Hide();
    this.ShowInTaskbar = false;
    Initializenotifyicon();
  }
}

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#实现WinForm捕获最小化事件的方法,包括了C#实现WinForm捕获最小化事件的方法的使用技巧和注意事项,需要的朋友参考一下 一般来说,虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现WinForm捕获最小化事件。 实现方法为:当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。 本例为

  • 将图标和上下文菜单添加到系统托盘。 进程: 主进程​ Tray是一个[EventEmitter][event-emitter]. 1 const {app, Menu, Tray} = require('electron') 2 let tray = null 3 app.on('ready', () => { 4 tray = new Tray('/path/to/my/icon') 5 con

  • 系统托盘 添加图标和上下文菜单到系统通知区 进程:主进程 Tray 是一个 EventEmitter. const { app, Menu, Tray } = require('electron') let tray = null app.on('ready', () => { tray = new Tray('/path/to/my/icon') const contextMenu =

  • 问题内容: 我希望我的Electron.js应用程序驻留在系统托盘上,并且每当用户要执行某项操作时,他们都可以从系统托盘中进行还原,则可以执行某些操作并将其最小化/关闭回系统托盘。我怎么做? 我已经从文档中看到了这一部分,但是对于实现我想要的内容并没有多大帮助。 这是我到目前为止在文件上得到的 更新: 我找到了这个菜单栏存储库,但是在Linux上无法正常工作。 问题答案: 我实际上是很久前才弄清楚

  • 本文向大家介绍C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,包括了C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,主要是通过重写WndProc来实现的。分享给大家供大家参考。具体方法如下: 主要功能代码如下: 这段代码的功能主要是捕获最

  • 系统托盘是应用程序窗口之外的菜单。 在MacOS和Ubuntu上,它位于屏幕的右上角。 在Windows上,它位于右下角。 我们可以使用Electron为系统托盘中的应用程序创建菜单。 创建一个新的main.js文件并将以下代码添加到其中。 准备好png文件用于系统托盘图标。 const {app, BrowserWindow} = require('electron') const url =