protected override void OnResize(EventArgs e)
{
if(WindowState == FormWindowState.Maximized)
{
//最大化時所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
/ /最小化時所需的操作
MessageBox.Show("min");
}
} *****但是問題出現了,最大化以後,內部的控件不能隨anchar發生變化。。。。。,問題出在哪裡呢?於是又找到了一些代碼,如下
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); }
{
if(WindowState == FormWindowState.Maximized)
{
//最大化時所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
/ /最小化時所需的操作
MessageBox.Show("min");
}
} *****但是問題出現了,最大化以後,內部的控件不能隨anchar發生變化。。。。。,問題出在哪裡呢?於是又找到了一些代碼,如下
雖然Form類沒有提供Minimize的事件,但還是可以通過重載Deactive來實現
當Form失去焦點後,測試WindowState取得Form狀態,若為Minimized既是最小化事件。
本例為最小化後隱藏窗口:





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
















全站熱搜