C # Пользовательский контроль навигации - PullRequest
1 голос
/ 17 августа 2010

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

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

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

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

1 Ответ

1 голос
/ 17 августа 2010

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

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

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

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

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

...