桌面程序的开发中,经常考虑能在状态栏实现托盘快捷操作,托盘程序的实现在API时代,还是相对复杂的,首先在MSDN中可以查看其函数细节,
然后在根据其要求的参数进行复杂的设置。
在.NET时代,MS封装了这些麻烦的细节,开发者可以很容易的实现托盘程序的控制和操作。现以简单的实例为例来说明:
1.添加notifyIcon控件和contextMenuStrip控件
2.设置其属性icon和contextMenuStrp属性,Icon属性只需选择一个托盘图标,contextMenuStrip用于关联第一步的快捷菜单。
3.添加窗体的SizeChanged事件程序,用于实现窗体最小化时调用托盘:
if (this.WindowState == FormWindowState.Minimized)
{
//this.Hide(); //可以要,也可以不要,取决于是否隐藏主窗体
//隐藏任务栏区图标
this.ShowInTaskbar = false;
this.notifyIcon.Visible = true;
}
4.添加notifyIcon的Click事件,打开快捷菜单项,或者其他更复杂的操作选项,根据需要而定。
private void Form1_SizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { //this.Hide(); //可以要,也可以不要,取决于是否隐藏主窗体 //隐藏任务栏区图标 this.ShowInTaskbar = false; //图标显示在托盘区 notifyIcon.Visible = true; } } private void notifyIcon_DoubleClick(object sender, EventArgs e) { //判断是否已经最小化于托盘 if (WindowState == FormWindowState.Minimized) { //还原窗体显示 WindowState = FormWindowState.Normal; //激活窗体并给予它焦点 this.Activate(); //任务栏区显示图标 this.ShowInTaskbar = true; //托盘区图标隐藏 notifyIcon.Visible = false; } }
原文:http://www.cnblogs.com/wuxiangbing/articles/1885483.html
时间: 2024-10-30 00:29:05