1、在窗体添加notifyIcon控件(命名为notifyIcon1),contextMenuStrip控件(命名为contextMenuStrip1)和定时器Timer(命名为timer1)
2、点击notifyIcon1,在属性中设置ContextMenuStrip为contextMenuStrip1
3、定义notifyIcon1的单击事件,在属性中为notifyIcon1设置图标,要求为.ico类型图片
4、设置contextMenuStrip的Item
5、设置每个Item的Click事件
6、代码编写
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Icon icon1;//闪烁时使用的图片
private Icon icon2;
private bool bFlag = true;//切换标志
//窗体界面按钮
private void simpleButton1_Click(object sender, EventArgs e)//
{
timer1.Start();//定时器触发
Form2 form2 = new Form2();//打开新窗口
form2.Show();
}
//闪烁的定时器
private void timer1_Tick(object sender, EventArgs e)
{
if (icon1 != null && icon2 != null)//判断图标加载是否完成
{
if (bFlag == true)
{
notifyIcon1.Icon = icon1;
bFlag = false;
}
else
{
notifyIcon1.Icon = icon2;
bFlag = true;
}
}
}
//打开
private void toolStripMenuItem1_Click(object sender, EventArgs e)//第一个Item的Click事件
{
timer1.Stop();
this.Visible = true;
//还原窗体显示
WindowState = FormWindowState.Normal;
//激活窗体并给予它焦点
this.Activate();
//任务栏区显示图标
this.ShowInTaskbar = true;
//托盘区图标隐藏
notifyIcon1.Visible = true;
}
//关闭
private void toolStripMenuItem2_Click(object sender, EventArgs e)//第二个Item的Click事件
{
Application.Exit();
}
//页面加载
private void Form1_Load(object sender, EventArgs e)
{
//事件
try
{
icon1 = new Icon("OA.ico");
icon2 = new Icon("OA_.ico");
}
catch (Exception ex)
{
MessageBox.Show(ex + "");
}
}
//托盘区图标点击事件
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) //单击左键
{
timer1.Stop();//停止闪烁
if (this.Visible == true)
{
this.Visible = false;
//还原窗体显示
WindowState = FormWindowState.Minimized;
//激活窗体并给予它焦点
this.Hide();
//任务栏区显示图标
this.ShowInTaskbar = true;
//托盘区图标隐藏
notifyIcon1.Visible = true;
}
else
{
this.Visible = true;
//还原窗体显示
WindowState = FormWindowState.Normal;
//激活窗体并给予它焦点
this.Activate();
//任务栏区显示图标
this.ShowInTaskbar = true;
//托盘区图标隐藏
notifyIcon1.Visible = true;
}
}
else if (e.Button == MouseButtons.Right) //单击右键
{
contextMenuStrip1.Show();//显示contextMenuStrip选项
}
}
}