C#winform任务栏显⽰⼩图标及右击操作
⼀般的开发的应⽤运⾏时,是直接的程序页⾯打开,想要达到那样的效果,还是有些东西要注意的,最近看了⼀些零零散散的解决⽅法,我就整合了⼀下。
⿏标单击打开界⾯,右击图标会有如下图的快捷功能操作
********************************************
1.让右下⾓状态栏上显⽰我们的程序的⼩图标
①在⼯具箱⾥⾯到这个控件NotifyIcon,拖进应⽤程序
②设置我们需要的属性,要在右下⾓状态栏显⽰的图标
③现在可以点击运⾏了,可以看到右下⾓有你刚刚添加进程序的icon图标,这个只是到了可以看的阶段还有....我们需要能点击图标打开还有右击快捷操作。
给刚刚拖进来的NotifyIcon控件添加⼀个MouseDoubleClick事件让它在最⼩化的时候能点击⼩图标后显⽰程序
代码如下:
/// <summary> /// 状态栏⼩图标的⿏标点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"> </param> private void nIcon_Click(object sender, MouseEventArgs e) { try { if (this.WindowState ==
icon图标库FormWindowState.Minimized)//当程序是最⼩化的状态时显⽰程序页⾯ { this.WindowState = FormWindowState.Normal; }
this.Activate(); this.Visible = true; this.ShowInTaskbar = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
④开始添加右下⾓状态栏⼩图标的右击操作了
到ContextMenuStrip控件,拖进应⽤程序
设置它的⼀些属性,双击打开集合,添加右击菜单的两个⼦项,并设置⼦项的Name和Text的,按照你的实际需求来。编写右击菜单⼦项的事件,我就写了⼀个退出事件
/// <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控件)上⾯,绑定完就可以使⽤啦。
⑤⽬前点击程序的右上⾓的关闭时,就是直接退出程序了,把它变成点击右上⾓的叉叉缩进右下⾓的状态栏,不直接退出,再次点击右下⾓状态栏的⼩图标的时候,就打开程序。
到窗体的这个属性添加事件并写⼊代码
代码如下:
/// <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(); } }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。