在做整个类似QQ的毕业设计中,有一个小图标把我给难了一阵子,就是托盘小图标。
要完成的功能大约是,窗口选择关闭时变成最小化到托盘图标,双击托盘图标显示托盘图标。
还是以登录窗口为例子
要有托盘图标首先需要一个notifyIcon,这个在工具箱中找。然后就是notifyic的相关属性的设置了,首先需要一个icon图标,我是直接在网上随便翻的,不知道翻到了哪位大神的图标,不好意思,就让我暂时用一下啦,我保证我的水平还没办法用作商业用途T^T,也就是这个地方设置一下icon图标就好叻。
如果需要右键单击托盘图标并显示一些选项和操作的话,这里还需要在窗口中添加contextmenustrip控件(也就是右键快捷方式的控件)了,这个也可以在工具箱中找到。再设置需要拥有的功能就好叻~
上面的都完成了不代表就搞定了,他们两个属于两个陌生人,他们彼此都是独立的个体,要想点击图标出现右键还需要硬拉关系~大家多走动走动就熟悉了嘛~
这里的重要一步就是,notifyicon中的需要关联刚刚建立的右键快捷方式。
然后我就是想将关闭窗口变成最小化到托盘,这个就需要窗体的formclosing事件了。
将notifyicon的visible属性设置为true(也就是可见),那正常情况下都不会关闭的,所以这个时候将关闭变成最小化就只是需要1、取消关闭;2、窗口最小化。
1 #region 关闭用户界面即最小化到托盘图标界面2 private void Panel_FormClosing(object sender, FormClosingEventArgs e)3 {4 // 取消关闭窗体5 e.Cancel = true;6 // 将窗体变为最小化7 this.WindowState = FormWindowState.Minimized;8 }9 #endregion
最后一点就是双击托盘图标显示用户界面
这个很明显就是icon的属性了,上面的功能基本是窗口的属性,所以他的formclosing事件在窗口中找,现在是icon的事情,那只有在notifyicon的属性里面找是否有相关的功能实现的事件了,也就是mousedouble咯~
1 #region 双击托盘图标显示用户界面 2 private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) 3 { 4 if (WindowState == FormWindowState.Minimized) 5 { 6 //还原窗体显示 7 WindowState = FormWindowState.Normal; 8 //激活窗体并给予它焦点 9 this.Activate();10 }11 }12 #endregion