窗体最小化后的还原问题 把第一个窗体最小化到任务栏,通过另一个窗体的按钮控制第一个窗体的显示,点击则还原窗体(原来是最大化就最大化,原来是正常 就正常),就像点击任务栏的窗体图标一样。估计也就是一句代码的事 可是我真不知道 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对程序进行托盘化首先1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。 // 这个控件是为了在任务栏显示小图标3.添加窗体最小化事件(首先需要添加事件引用):this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //添加窗体改变事件private void Form1_SizeChanged(object sender, EventArgs e) //事件中的代码 { if (this.WindowState == FormWindowState.Minimized) { this.Hide(); this.notifyIcon1.Visible = true; } }脱出控件contextMenuStrip 4.可以给notifyIcon添加右键菜单: 主窗体中拖入一个ContextMenuStrip控件NicontextMenu,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中contextMenuStrip1即可。剩下的就是加事件了。设计页面上为他添加显示与退出按钮,然后为按钮上的控件添加事件;private void 显示ToolStripMenuItem_Click(object sender, EventArgs e) //显示按钮 { if (this.ShowInTaskbar == false) notifyIcon1.Visible = true; this.ShowInTaskbar = true; this.Show(); this.Activate(); this.WindowState = FormWindowState.Normal; } private void toolStripMenuItem1_Click(object sender, EventArgs e) //退出按钮 { Application.Exit(); }下面代码为左键单击显示窗体private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left ) //如果左键选中,此事件只能是MouseEventArgs e的情况下调用 { if (this.ShowInTaskbar == false) notifyIcon1.Visible = true; this.ShowInTaskbar = true; this.Show(); this.Activate(); this.WindowState = FormWindowState.Normal; } } FormWindowState fws = this.WindowState;用这个记录最小化前的状态,然后显示的时候再赋值就好了 不知道我理解是不是对的 你设置窗体的TopMost属性 然后在窗体的show()方法后面调用BringToFront()方法form2.TopMost=true;...form2 f2=new form2();f2.show();f2.BringToFront();你可以测试下 两个窗体 或者三个窗体 一个按钮控制 Form1 frm = new Form1();...FormWindowState fws = frm .WindowState;最小化...//还原frm.WindowState = fws ;//FormWindowState.Maximized; 用户控件中的脚本调用 一个简单问题,关于RichTextBox中保留某行到某行,怎么做? [IE编程高难度问题]关于webbrowser权限 FCS校验码 一个简单的程序,请大家花点时间定一下代码. 紧急求助!C#中FileStream如何保存? 请教.net remoting的怪问题 ●难道是微软的经典错误??? Linux下面有没有C#的framework??Unix下面有没有呢? 在DataGridTextBoxColumn中怎么指定某一行的颜色? 要做一个C#扫雷小游戏,但是完全不知道到怎么下手 关于捕获异常的问题
首先
1.设置WinForm窗体属性showinTask=false
2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。 // 这个控件是为了在任务栏显示小图标
3.添加窗体最小化事件(首先需要添加事件引用):
this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //添加窗体改变事件
private void Form1_SizeChanged(object sender, EventArgs e) //事件中的代码
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible = true;
}
}
脱出控件contextMenuStrip 4.可以给notifyIcon添加右键菜单:
主窗体中拖入一个ContextMenuStrip控件NicontextMenu,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中contextMenuStrip1即可。剩下的就是加事件了。设计页面上为他添加显示与退出按钮,然后为按钮上的控件添加事件;private void 显示ToolStripMenuItem_Click(object sender, EventArgs e) //显示按钮
{
if (this.ShowInTaskbar == false)
notifyIcon1.Visible = true;
this.ShowInTaskbar = true;
this.Show();
this.Activate();
this.WindowState = FormWindowState.Normal;
} private void toolStripMenuItem1_Click(object sender, EventArgs e) //退出按钮
{
Application.Exit();
}
下面代码为左键单击显示窗体
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left ) //如果左键选中,此事件只能是MouseEventArgs e的情况下调用
{
if (this.ShowInTaskbar == false)
notifyIcon1.Visible = true;
this.ShowInTaskbar = true;
this.Show();
this.Activate();
this.WindowState = FormWindowState.Normal;
}
}
用这个记录最小化前的状态,然后显示的时候再赋值就好了
然后在窗体的show()方法后面调用BringToFront()方法
form2.TopMost=true;
...
form2 f2=new form2();
f2.show();
f2.BringToFront();
你可以测试下 两个窗体 或者三个窗体 一个按钮控制
Form1 frm = new Form1();
...
FormWindowState fws = frm .WindowState;最小化
...//还原
frm.WindowState = fws ;//FormWindowState.Maximized;