窗体最小化后的还原问题

hao3336583 2011-01-18 03:36:55
把第一个窗体最小化到任务栏,通过另一个窗体的按钮控制第一个窗体的显示,点击则还原窗体(原来是最大化就最大化,原来是正常 就正常),就像点击任务栏的窗体图标一样。估计也就是一句代码的事 可是我真不知道
...全文
375 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfieldzf 2011-01-18
  • 打赏
  • 举报
回复
WindowState
anbam 2011-01-18
  • 打赏
  • 举报
回复

Form1 frm = new Form1();
...
FormWindowState fws = frm .WindowState;

最小化
...

//还原
frm.WindowState = fws ;//FormWindowState.Maximized;
andy1020tc 2011-01-18
  • 打赏
  • 举报
回复
不知道我理解是不是对的 你设置窗体的TopMost属性
然后在窗体的show()方法后面调用BringToFront()方法
form2.TopMost=true;
...
form2 f2=new form2();
f2.show();
f2.BringToFront();
你可以测试下 两个窗体 或者三个窗体 一个按钮控制
sardineany 2011-01-18
  • 打赏
  • 举报
回复
FormWindowState fws = this.WindowState;

用这个记录最小化前的状态,然后显示的时候再赋值就好了
hao3336583 2011-01-18
  • 打赏
  • 举报
回复
就是不一定是最大化还是普通模式下最小化的 点另一个窗体的按钮后 就还原到最小化之前的状态
hao3336583 2011-01-18
  • 打赏
  • 举报
回复
楼上的大哥 我真的不是要最小化到托盘 就是你最简单的点一下最小化按钮 最小化到任务栏 想要的效果就是点一下别的窗口的按钮 就自动还原到最小化之前的状态 就跟点一下任务栏的那个图标条一样
sardineany 2011-01-18
  • 打赏
  • 举报
回复
我比较懒,弄了个以前写过的,还有啥问题说一下就好了
sardineany 2011-01-18
  • 打赏
  • 举报
回复
  对程序进行托盘化
首先
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;
}
}
hao3336583 2011-01-18
  • 打赏
  • 举报
回复
这个应该挺简单啊 求解啊
hao3336583 2011-01-18
  • 打赏
  • 举报
回复
能说的具体点吗?哪个组建啊,没有最小话到托盘,就是普通的最小化,最小化到任务栏
纵横宇宙 2011-01-18
  • 打赏
  • 举报
回复
需要加入 托盘组件

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧