把第一个窗体最小化到任务栏,通过另一个窗体的按钮控制第一个窗体的显示,点击则还原窗体(原来是最大化就最大化,原来是正常 就正常),就像点击任务栏的窗体图标一样。估计也就是一句代码的事 可是我真不知道

解决方案 »

  1.   

      对程序进行托盘化
    首先
    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;
                }
            }
      

  2.   

    FormWindowState fws = this.WindowState;
    用这个记录最小化前的状态,然后显示的时候再赋值就好了
      

  3.   

    不知道我理解是不是对的  你设置窗体的TopMost属性 
    然后在窗体的show()方法后面调用BringToFront()方法
    form2.TopMost=true;
    ...
    form2 f2=new form2();
    f2.show();
    f2.BringToFront();
    你可以测试下 两个窗体 或者三个窗体 一个按钮控制
      

  4.   


    Form1 frm = new Form1();
    ...
    FormWindowState fws = frm .WindowState;最小化
    ...//还原
    frm.WindowState = fws ;//FormWindowState.Maximized;