如何在加载其组件/类时避免窗口的闪烁。

时间:2013-09-02 04:59:49

标签: c# winforms

在加载其组件时,我遇到了关于窗体闪烁问题的问题。

private void frmOrderhdr_Load(object sender, EventArgs e)
         {
            InitializeInstanceObj();
            InitializedControls();
            InitializedGridControls();
            InitializeFields();
            InitializeComboBoxDataSources();
            ControlSettings();
            PopulateFieldsUpdate();
            SetControlPermission();
            InitializedGrid();
        }

如您所见,我在Form_Load事件中有很多函数。是否有任何工作来防止闪烁?

提前致谢。

1 个答案:

答案 0 :(得分:4)

我认为SuspendLayoutResumeLayout可行:

private void frmOrderhdr_Load(object sender, EventArgs e) {
        SuspendLayout();
        InitializeInstanceObj();
        InitializedControls();
        InitializedGridControls();
        InitializeFields();
        InitializeComboBoxDataSources();
        ControlSettings();
        PopulateFieldsUpdate();
        SetControlPermission();
        InitializedGrid();
        ResumeLayout(true);
}

如果需要,您还可以尝试将表单的Visible设置为false。然后在加载所有内容后,将其设置为true。这也可以应用于每个组件。