Как использовать представление конструктора в Visual Studio для разработки более одного состояния формы? - PullRequest
0 голосов
/ 02 июля 2010

Это глупый вопрос?Я пытаюсь ориентироваться в мистическом мире C # Visual Studio.Я хочу иметь возможность заменить панель в какой-то момент во время выполнения, но представление конструктора имеет статическое представление только одного состояния формы.

Например, в форме может быть панель panel1 сbutton1 и picturebox1.Затем, если пользователь нажмет кнопку 1, панель 1 будет заменена на панель 2.Panel2 имеет button2 и picturebox2.

Я знаю, как просто сделать panel1 на дизайнере.Разве я не могу использовать конструктор для создания панели2?Можете ли вы использовать конструктор только для создания одного состояния формы, а затем вам нужно сделать любое другое состояние вручную?

Ответы [ 2 ]

1 голос
/ 02 июля 2010

Я не знаю ни одного метода для отображения различных состояний формы в конструкторе. Однако звучит так, как будто вы хотите сделать два разных пользовательских элемента управления. Я бы предложил создать одну форму, которая может переключаться между двумя пользовательскими элементами управления в коде. Это не совсем то, что вы просили, но, по крайней мере, теперь вам не нужно кодировать различные панели за пределами дизайнера. Вот что вам нужно сделать:

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

Это VB.NET, но код в PanelLoaderForm может выглядеть примерно так:

Private Sub LoadUserControl()
   If UsePanel1 Then
      Controls.Add(new UserControlPanel1())        
   Else
      Controls.Add(new UserControlPanel2())        
   End If
End Sub

Затем, если вы хотите переключиться между двумя вызовами Controls.Remove (oldControl) или чем-то еще до добавления нового.

1 голос
/ 02 июля 2010

Я не использовал конструктор форм C # специально, но в целом вы проектируете начальное состояние формы и делаете все остальное (все динамические изменения) в коде.Теперь, возможно, можно поместить панель 2 в форму, сделать ее невидимой и просто переключать видимость панелей при нажатии кнопки 1, но, скорее всего, это не будет хорошим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...