Notyfyicon 实现最小化到托盘
如题,最小化到托盘已实现,但是存在一个问题。打开一个子窗口,托盘就又出现一个图标,现在想实现只有一个图标。
该怎么做?
--------------------编程问答-------------------- 现在是这个情况,打开一个子窗口,托盘会再次出现一个图标
要的效果是托盘只有一个图标 --------------------编程问答-------------------- --------------------编程问答-------------------- 我刚好也做了这个,代码都给你了
/// <summary>--------------------编程问答-------------------- 控件放在主窗体上,不要放在子窗体上 --------------------编程问答-------------------- 这个。。。。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 托盘的那段代码只放到主窗体就可以了, 你是不是放到自定义的 BaseForm 中, 所有窗体继承 :BaseForm --------------------编程问答-------------------- 控件是放在MainForm上的,我调试的时候发现 子窗口继承了主窗口DATAGRIDVEW的数据,所以操作子窗口的时候程序好像又执行了一遍MainFron中最小化到托盘操作
/// 创建状态栏按钮
/// </summary>
public void CreateMenu()
{
#region//隐藏到状态栏
MenuItem menuItemShow = new MenuItem("打开主面板");
MenuItem menuItemHide = new MenuItem("托盘主面板");
MenuItem menuItemExit = new MenuItem("退出");
menuItemShow.Click += new EventHandler(this.menuItemShow_Click);
menuItemHide.Click += new EventHandler(this.menuItemHide_Click);
menuItemExit.Click += new EventHandler(this.menuItemExit_Click);
//设置NotifyIcon对象的ContextMenu属性为生面的弹出菜单对象
notifyIcon_ForGroundSys.ContextMenu = new ContextMenu(new MenuItem[] { menuItemShow, menuItemHide, menuItemExit });
//当用户双击程序图标时将执行相应的函数
notifyIcon_ForGroundSys.DoubleClick += new EventHandler(this.notifyIcon_DBClick);
#endregion
}
#region//状态栏事件
private void menuItemShow_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
//this.notifyIcon_ForGroundSys.Visible = false;
this.Visible = true;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Maximized;
}
}
private void menuItemHide_Click(object sender, EventArgs e)
{
//notifyIcon_ForGroundSys.Visible = true;
this.WindowState = FormWindowState.Minimized;
this.Visible = false;
this.ShowInTaskbar = false;
}
private void menuItemExit_Click(object sender, EventArgs e)
{
CloseSys();
}
private void notifyIcon_DBClick(object sender, System.EventArgs e)//用户双击应用程序图标进的响应方法
{
//this.notifyIcon_ForGroundSys.Visible = false;
this.Visible = true;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Maximized;
}
#endregion
/// <summary>
/// 鼠标略过控件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon_ForGroundSys_MouseMove(object sender, MouseEventArgs e)
{
this.notifyIcon_ForGroundSys.Text = String.Format("{0}{1}{2}{3}{4}", "...系统!", Environment.NewLine, "正在运行中......",Environment.NewLine, "双击显示!");
}
/// <summary>
/// 判断是否最小化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void frmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized) //判断是否最小化
{
//this.notifyIcon_ForGroundSys.Visible = true;
this.Visible = false;
this.ShowInTaskbar = false;
}
}
不知道描述的对不对,不知道怎么解决 --------------------编程问答-------------------- 还有一个问题呢 就是 控制TEXTBOX 怎么判断是正确的银行卡号格式
补充:.NET技术 , C#