2017-03-08 89 views
0

我正在为我的项目使用Devexpress winform。简单来说有三种形式。第一个是MainForm,使用MdiParent,第二个是FormArticles,使用关于法律的列表文章到GridControl。最后是FormArticleView,用于查看选中的文章到pdfViewer控件。我设法使用documentManagerSplashScreenManager,同时加载Mdi子窗体和文章到Mdi子窗体FormArticles之一。这里是我的代码:Devexpress Winforms - 表单被破坏,而过渡表单到另一个表单

public prjLibrary() 
    { 
     InitializeComponent(); 
     var frm = new FormArticles{ MdiParent = this, Dock = DockStyle.Fill }; 
     frm.Show(); 
    } 

虽然从一种形式转换到另一种形式时,表格被破坏,并在加载之后它被修复。这里是我的屏幕截图: enter image description here 这里是固定视图: enter image description here 如何修复断开的视图,同时转换表单?

+0

您是否尝试从窗体的Load事件中加载?试试这可能会解决你的问题。 –

回答

1

这是因为当第一个屏幕截图的表单变得越来越集中时,控件必须在其Paint-event中呈现。这似乎需要一些时间,但您可以看到分解的文本以矩形显示,我认为其中放置了底层控件(单选按钮,文本框,标签)。所以他们还没有呈现,并没有准备好去其他任何电话阻塞线程。我认为问题在于你在mainForm的构造函数中创建了一个新窗体。

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

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

相关问题