2010-03-01 156 views
15

可以偵聽什麼窗口消息或事件以阻止窗口重新繪製其每個像素的大小?在調整c#窗體大小時防止窗口重繪

也就是說,當用戶點擊窗口的邊緣並開始重新調整大小時,我不想重新繪製整個內容,直到他放開。這是因爲出於某種原因,目前它在調整大小時可能會因爲所有事情都在重新對接而不是重新對接而變得不穩定。

我試過WM_SIZING,但只是告訴我它正在重新調整大小,我想知道調整的開始和結束,以便我可以暫停佈局,直到用戶停止調整大小。

回答

30

沒關係,剛發現這兩件事。

this.ResizeBegin += (s, e) => { this.SuspendLayout(); }; 
this.ResizeEnd += (s, e) => { this.ResumeLayout(true); }; 

工程請客

+1

接受這個作爲答案,將是人們對未來 – 2010-03-01 01:26:17

+0

它說我必須等待前2天我可以回答我的問題 – Daniel 2010-03-01 01:30:44

+1

搜索同樣的問題有用+ 1在事件分配中使用Lambda語法。但是,用戶請注意:如果這種類型的語法使用'e被用在類似Form Load事件的內部,或者使用標準'e名稱作爲EventArgument類型參數:變量名'e已經被使用,那麼改爲像'evt可能會很方便的東西。 – BillW 2010-03-01 05:25:56