C# 托盘程序 实例 双击显示窗体,最小化到托盘
2012-06-27 22:35
357 查看
单击任务栏 显示-隐藏切换,右键菜单,捕捉关闭窗体事件
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
#region 注销
public void Logout()
{
if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
notifyIcon1.Visible = false;
FormCollection fc = Application.OpenForms;
if (fc != null && fc.Count > 0)
{
foreach (Form window in fc)
{
window.Hide();
}
}
CacheHelper.CurrentUsrName = "";
CacheHelper.CurrentRoleId = 0;
frmLogin fl = new frmLogin();
fl.Show();
}
}
private void 注销登陆ToolStripMenuItem_Click(object sender, EventArgs e)
{
Logout();
}
#endregion
#region 修改密码
private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmChangePwd fcp = new frmChangePwd();
fcp.Show();
}
#endregion
private void frmMain_Load(object sender, EventArgs e)
{
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
Logout();
}
else
{
e.Cancel = true;
}
}
private void 最大化ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowWin();
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Logout();
}
private void frmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
HideWin();
}
}
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
else
{
ShowWin();
}
}
#region 隐藏显示窗体
/// <summary>
/// 隐藏窗体
/// </summary>
private void HideWin()
{
this.notifyIcon1.Visible = true;
this.Hide();
}
/// <summary>
/// 显示主窗体
/// </summary>
private void ShowWin()
{
if (Visible)
{
HideWin();
}
else
{
/////这里注意顺序很重要,先show 后设置state
Show();
WindowState = FormWindowState.Normal;
}
}
#endregion
}
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
#region 注销
public void Logout()
{
if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
notifyIcon1.Visible = false;
FormCollection fc = Application.OpenForms;
if (fc != null && fc.Count > 0)
{
foreach (Form window in fc)
{
window.Hide();
}
}
CacheHelper.CurrentUsrName = "";
CacheHelper.CurrentRoleId = 0;
frmLogin fl = new frmLogin();
fl.Show();
}
}
private void 注销登陆ToolStripMenuItem_Click(object sender, EventArgs e)
{
Logout();
}
#endregion
#region 修改密码
private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmChangePwd fcp = new frmChangePwd();
fcp.Show();
}
#endregion
private void frmMain_Load(object sender, EventArgs e)
{
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确认要退出吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
Logout();
}
else
{
e.Cancel = true;
}
}
private void 最大化ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowWin();
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Logout();
}
private void frmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
HideWin();
}
}
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
else
{
ShowWin();
}
}
#region 隐藏显示窗体
/// <summary>
/// 隐藏窗体
/// </summary>
private void HideWin()
{
this.notifyIcon1.Visible = true;
this.Hide();
}
/// <summary>
/// 显示主窗体
/// </summary>
private void ShowWin()
{
if (Visible)
{
HideWin();
}
else
{
/////这里注意顺序很重要,先show 后设置state
Show();
WindowState = FormWindowState.Normal;
}
}
#endregion
}
相关文章推荐
- C# 托盘程序 实例 双击显示窗体,最小化到托盘
- C#实现WinForm程序的动态系统托图标 关闭主窗体时最小化到系统托盘
- C#实现窗体最小化到状态栏,双击运行时又能正常显示窗体
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C#源码刷新网页 最小化托盘http get和post请求配置保存版权时间限制定时调用 单实例运行,如果已经运行则激活窗口到最前显示
- C#点击窗体最小化时,隐藏任务栏和显示托盘图标
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- c#显示隐藏的窗体和托盘中的程序
- c#窗体程序之tooltip控件显示鼠标位置
- C#控制台程序输出等腰三角形并居中显示实例
- C#怎样使自己的程序在“显示桌面”时不最小化
- C#winform中怎么将程序最小化到系统托盘
- c# Winform窗体最小化的时候,出现在系统托盘里!
- c# 智能设备应用程序不显示在任务栏以及最小化窗体
- c# 程序最小化到系统托盘
- c# 非活动窗体始终显示,即使失去焦点也不最小化
- C#winform中怎么将程序最小化到系统托盘
- C# 屏幕监控 自动截屏程序 主窗体隐藏,仅在进程中显示
- C# winForm程序开机启动和托盘显示
- C#窗体类似于QQ托盘显示