C#winform任务栏显示小图标及右击操作

原文地址:https://www.cnblogs.com/Licy113/p/11994494.html

一般的开发的应用运行时,是直接的程序页面打开,想要达到微信那样的效果,还是有些东西要注意的,最近看了一些零零散散的解决方法,我就整合了一下。

C#winform任务栏显示小图标及右击操作

 鼠标单击打开微信界面,右击微信图标会有如下图的快捷功能操作

C#winform任务栏显示小图标及右击操作

 ********************************************

1.让右下角状态栏上显示我们的程序的小图标

①在工具箱里面找到这个控件NotifyIcon,拖进应用程序

C#winform任务栏显示小图标及右击操作

 ②设置我们需要的属性,要在右下角状态栏显示的图标

C#winform任务栏显示小图标及右击操作

 ③现在可以点击运行了,可以看到右下角有你刚刚添加进程序的icon图标,这个只是到了可以看的阶段还有....我们需要能点击图标打开还有右击快捷操作。

给刚刚拖进来的NotifyIcon控件添加一个MouseDoubleClick事件让它在最小化的时候能点击小图标后显示程序

C#winform任务栏显示小图标及右击操作

 代码如下:

 

 

/// <summary> /// 状态栏小图标的鼠标点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void nIcon_Click(object sender, MouseEventArgs e) { try { if (this.WindowState == FormWindowState.Minimized)//当程序是最小化的状态时显示程序页面 { this.WindowState = FormWindowState.Normal; } this.Activate(); this.Visible = true; this.ShowInTaskbar = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } }

 

 ④开始添加右下角状态栏小图标的右击操作了

找到ContextMenuStrip控件,拖进应用程序

C#winform任务栏显示小图标及右击操作

 

设置它的一些属性,双击打开集合,添加右击菜单的两个子项,并设置子项的Name和Text的,按照你的实际需求来。编写右击菜单子项的事件,我就写了一个退出事件

C#winform任务栏显示小图标及右击操作

 

 

/// <summary> /// 右击状态栏小图标的退出事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void smi_exit_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("你确定要关闭吗!", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result == DialogResult.OK) { // 关闭所有的线程 this.Dispose(); this.Close(); } }

 

 

 接着就是把这个ContextMenuStrip控件绑定到右下角的我的程序小图标(NotifyIcon控件)上面,绑定完就可以使用啦。 

C#winform任务栏显示小图标及右击操作

⑤目前点击程序的右上角的关闭时,就是直接退出程序了,把它变成点击右上角的叉叉缩进右下角的状态栏,不直接退出,再次点击右下角状态栏的小图标的时候,就打开程序。

找到窗体的这个属性添加事件并写入代码

C#winform任务栏显示小图标及右击操作

 代码如下:

 

 

/// <summary> /// 程序右上角叉叉关闭时的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { e.Cancel = true; this.Visible = false; } catch (Exception ex) { MessageBox.Show(ex.Message); } }

 

********************************************************

扩展:C#监听键盘的按下操作  -----要设置窗体的KeyPreview属性,并且添加KeyDown事件

 

 

/// <summary> /// 键盘按Esc,隐藏程序 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 27) { //窗体隐藏 this.Hide(); } }