2010-08-17 3 views
1

Я делаю приложение C# windows, в котором есть один MainForm и множество пользовательских элементов управления (LoginPage, HomePage, MyListPage и т. Д.), Встроенных в него. Я использую Visual Studio 2005 для разработки графического интерфейса.C# User Control Navigation

В конструкторе MainForm, я сделать:

Controls.Add(new LoginPage()); 
Controls.Add(new HomePage()); 
Controls.Add(new MyListPage()); 
... 
LoginPage.show(); 

Но у меня есть более 30 страниц, которые я добавляю в конструктор MainForm, и я думаю, что это является виновником отставания моего приложения в ходе его выполнения. Кто-нибудь знает более стандартизованный способ использования User Controls для одноплатформенного приложения для навигации?

ответ

1

Я предполагаю, что у вас есть способ навигации между страницами - ваши пользовательские элементы управления не все отображаются одновременно?

Если это так, то вы должны быть в состоянии сделать следующее:

  1. Создать один из пользовательских элементов управления по строительству, чтобы использовать в качестве начальной страницы.
  2. Когда пользователь выполняет действие, которое означает, что ваше приложение должно перейти на другую страницу, удалите текущий элемент управления из формы, удалите его, создайте новый требуемый тип и добавьте его в форму.

Если вы хотите создать только один элемент управления пользователя один раз, вы можете использовать механизм кеширования, чтобы каждый из них был создан один раз (и не удаляйте элементы управления при их удалении).

Если вы используете этот подход, он должен избавиться от некоторого начального запаздывания и обменять его на несколько меньших задержек, поскольку пользователь впервые переходит к каждому пользовательскому элементу управления.