我目前正在使用一个使用相当复杂的嵌套winform控件结构的程序,用户可以根据用户进行某些选择而动态更改.关于控件的具体布局的更多细节将是广泛的这个问题.
当进行选择时,对由用户控件控制的底层模型进行了大量更新.这将导致显示的控件的尺寸/位置/可视性的一系列相应的更改.所有这些变化都会导致屏幕上控件的剧烈闪烁.我需要以某种方式解决这个问题,所以每当用户选择屏幕时,基本上都会冻结,直到所有的控制更新完成.
我试图在许多不同的地方和方式使用Control.SuspendLayout / Control.ResumeLayout方法,我无法消除疯狂的闪烁.我以为在更改过程中挂起根控制的布局可以解决问题,但是看起来这个SuspendLayout在子控件更改时不会有帮助.
我需要使用其他方法而不是SuspendLayout吗?有没有办法我可以调试SuspendLayout看看为什么它似乎并没有被级联到所有的子控件?