2010-03-01 97 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