【发布时间】:2010-06-14 15:10:15
【问题描述】:
有没有办法在我操作 .NET 表单时关闭所有可视化更新?例如,当我的程序第一次加载时,我将选项卡控件设置为最后打开的选项卡。用户可以看到程序切换选项卡。
我查看了 SuspendLayout 和 ResumeLayout,但要么我不明白它们在做什么,要么我没有正确使用它们,因为它们似乎没有任何效果。有人告诉我曾经有一种方法可以在 VB 6 中关闭绘制事件。这在 .NET 中是否仍然存在?
【问题讨论】:
有没有办法在我操作 .NET 表单时关闭所有可视化更新?例如,当我的程序第一次加载时,我将选项卡控件设置为最后打开的选项卡。用户可以看到程序切换选项卡。
我查看了 SuspendLayout 和 ResumeLayout,但要么我不明白它们在做什么,要么我没有正确使用它们,因为它们似乎没有任何效果。有人告诉我曾经有一种方法可以在 VB 6 中关闭绘制事件。这在 .NET 中是否仍然存在?
【问题讨论】:
对于主窗口,最简单的做法是创建隐藏的窗口,做你所有的事情,然后显示窗口。这样,您将完成一次完整的重绘,并且布局的某些部分会执行一次。
【讨论】:
有一种似乎效果最好的非托管方法(至少根据我的经验):
Disable Painting of the VScrollbar in a System.Windows.Forms.RichTextBox
问题是关于滚动条的,但我多次使用表单的方法,因为我知道该怎么做。除非您知道句柄 (Me.Handle),否则控件是什么并不重要
【讨论】:
在表单/控件中覆盖 OnPaint 和 OnPaintBackground。设置标志时,不要调用方法的基本实现。
其他适用于儿童的方法link text
【讨论】: