问一下大家
我用c# winform 建立了一个窗口,最小化后到任务栏,再点任务栏又还原到屏幕上,我需要点击任务栏还原到屏幕上的时候执行一些代码,这个需要怎么写呢,有谁能知道呢??

解决方案 »

  1.   


    //要先实例化Form for = new Form();
    for.show();
    //在按钮的单击事件下写
      

  2.   

            private void Form1_Resize(object sender, EventArgs e)
            {
                switch (this.WindowState)
                {
                    case FormWindowState.Minimized:
                        MessageBox.Show("Min");
                        break;                case FormWindowState.Maximized:
                        MessageBox.Show("Max");
                        break;                case FormWindowState.Normal:
                        MessageBox.Show("Normal");
                        break;
                }
            }
      

  3.   

    这个 窗体名.show(); 应该写哪里?
      

  4.   

    form2 form =new form2();
    form.show();
    this.Hide();
      

  5.   

    你点击哪个控件发生、那么你就那个控件的Clink时间里激发form.show();
      

  6.   

    你点击哪个控件发生、那么你就那个控件的Clink事件里激发form.show();
      

  7.   

    还是4楼的理解我的意思,Resize 这个事件原来这么用,谢谢啊
      

  8.   

    应该是Resize事件或Resizing事件,判断原状态是不是最小化,如果是,说明是从任务栏还原而来
      

  9.   

    好像重写这个方法找到点击窗体的消息ID,可以捕捉的到protected override void WndProc(ref Message m)
    {
       if()
       {}
       base.WndProc(ref m);
    }
      

  10.   


        const int WM_SYSCOMMAND = 0x112;
        const int SC_CLOSE = 0xF060;
        const int SC_MINIMIZE = 0xF020;
        const int SC_MAXIMIZE = 0xF030;
        const int SC_NORMAL = 0xF120;    protected override void WndProc(ref Message m)
        {
          if (m.Msg == WM_SYSCOMMAND)
          {
            if (m.WParam.ToInt32() == SC_MINIMIZE)
            {
              MessageBox.Show("最小化");
            }
            else if (m.WParam.ToInt32() == SC_NORMAL)
            {
              MessageBox.Show("还原啦");
            }
            else if (m.WParam.ToInt32() == SC_MAXIMIZE)
            {
              MessageBox.Show("最大化");
            }
            
          }
          base.WndProc(ref m);
        }