Devexpress Winforms - 在将一种形式转换为另一种形式时,形式被破坏

时间:2017-03-08 05:46:32

标签: c# winforms devexpress mdiparent

我正在为我的项目使用Devexpress winform。简单地有三种形式。第一个是使用MainForm的{​​{1}},第二个是MdiParent,它使用有关法律的列表文章FormArticles。最后一个是GridControl,用于将所选文章查看到FormArticleView控件中。我设法使用pdfViewerdocumentManager,同时将Mdi Child表单和文章加载到Mdi Child表单SplashScreenManager中。这是我的代码:

FormArticles

在将一种形式转换为另一种形式时,形式是断裂的,并且在加载后它是固定的。这是我的截图: enter image description here 这是固定的观点: enter image description here 如何在表格转换时修复断裂的视图?

1 个答案:

答案 0 :(得分:1)

这是因为当第一个屏幕截图中的表单聚焦时,控件必须在其Paint事件中呈现。这似乎需要一些时间,但你可以看到断裂的文本以矩形显示,我认为底层控件(单选按钮,文本框,标签)被放置。因此,当任何其他调用阻塞线程时,它们还没有呈现,也没有准备好。我认为问题是你在mainForm的构造函数中创建了一个新表单。

无论如何,在具有等待响应的UI的后台线程中执行繁重的任务(似乎阻止控件的绘制)是一种很好的做法。如果这样做太难了,请在向用户显示UI后尝试执行此操作。这可能是OnLoad-甚至是OnShown事件。

请注意,我不想鼓励您将任何商业代码写入UI图层,但这似乎不是问题所在。