protected override void OnResize(EventArgs e)  
        {  
            if(WindowState == FormWindowState.Maximized)  
            {  
                //最大化時所需的操作  
                MessageBox.Show("max"); 
            }  
            else if(WindowState == FormWindowState.Minimized)  
            {  
                / /最小化時所需的操作
                MessageBox.Show("min"); 
            }  
        }  *****但是問題出現了,最大化以後,內部的控件不能隨anchar發生變化。,問題出在哪裡呢?於是又找到了一些代碼,如下




雖然Form類沒有提供Minimize的事件,但還是可以通過重載Deactive來實現
當Form失去焦點後,測試WindowState取得Form狀態,若為Minimized既是最小化事件。
本例為最小化後隱藏窗口:

private  void  Form1_Deactivate( object  sender, EventArgs e) 
        
            if  ( this .WindowState  ==  FormWindowState.Minimized) 
                this .Visible   false         }

還有種方法更加直接,重載WndProc:

const  int  WM_SYSCOMMAND   0x112 
const  int  SC_CLOSE   0xF060 
const  int  SC_MINIMIZE   0xF020 
const  int  SC_MAXIMIZE   0xF030 
protected  override  void  WndProc( ref  Message m) 

    
if  (m.Msg  ==  WM_SYSCOMMAND) 
    

        
if  (m.WParam. ToInt32()  ==  SC_MINIMIZE) 
        

            
this .Visible   false 
            
return         }

     }

    
 base .WndProc( ref  m); }

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 法蘭克不要怕 的頭像
    法蘭克不要怕

    法蘭克不要怕

    法蘭克不要怕 發表在 痞客邦 留言(0) 人氣()