Devexpress Winforms - Формы разрушаются при переходе одной формы в другую
Я использую Winform Devexpress для моего проекта. Есть три формы просто. Первый MainForm
что использовал MdiParent
второе FormArticles
который использовал перечисление статей о законе в GridControl
, И последнее FormArticleView
который использовал просмотр выбранной статьи в pdfViewer
контроль. Мне удалось использовать documentManager
а также SplashScreenManager
при загрузке форм и статей Mdi Child в одну из форм Mdi Child FormArticles
, Вот мой код:
public prjLibrary()
{
InitializeComponent();
var frm = new FormArticles{ MdiParent = this, Dock = DockStyle.Fill };
frm.Show();
}
При переходе с одной формы на другую, форма разрушается и после нагрузки фиксируется. Вот мой скриншот: А вот и фиксированный вид: Как я могу исправить трещиноватый вид при переходе форм?
1 ответ
Это связано с тем, что когда форма из первого снимка экрана становится сфокусированной, элементы управления должны отображаться в их событии Paint. Кажется, это займет некоторое время, но вы можете увидеть, что разбитый текст отображается в прямоугольниках, где, как мне кажется, размещены основные элементы управления (переключатели, текстовые поля, метки). Таким образом, они еще не обработаны и не готовы к работе, пока любой другой вызов блокирует поток. Я думаю, проблема в том, что вы создаете новую форму в конструкторе mainForm.
В любом случае, рекомендуется выполнять тяжелые задачи (которые, кажется, блокируют рисование ваших элементов управления) в фоновом потоке с пользовательским интерфейсом, ожидающим ответа. Если это слишком сложно, попробуйте сделать это после того, как пользовательский интерфейс будет показан пользователю. Это может быть событие OnLoad или даже OnShown.
Обратите внимание, что я не хочу призывать вас писать какой-либо бизнес-код на уровне пользовательского интерфейса, но здесь, похоже, вопрос не в этом.