В формах Windows можно ли загрузить форму, чтобы она находилась в другой форме? - PullRequest
1 голос
/ 14 сентября 2010

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

Ответы [ 3 ]

2 голосов
/ 14 сентября 2010

Альтернатива 1:

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

Выдолжен быть в состоянии найти способ связи между вашей формой и этими пользовательскими элементами управления.

Альтернатива 2:

Вы можете отобразить соответствующую форму, используя метод ShowModal (), с основной формой в качестве родительскойтаким образом, пользователь может закончить работу с дочерней формой, прежде чем вернуться к основной форме.

Недостатки здесь в том, что пользователь не сможет взаимодействовать с основной формой, пока дочерняя форма закрыта.

1 голос
/ 14 сентября 2010

Следующий код добавляет одну форму на панель в другой форме.

Добавить этот код в форму1

        Form2 ff = new Form2();
        ff.TopLevel = false;

        ff.Dock = DockStyle.Fill;
        ff.ControlBox = false;
        ff.Text = "";

        panel1.Controls.Add(ff);
        ff.Show();

Обратная сторона: ваша панель должна быть достаточно большой, чтобы вместить форму ...

1 голос
/ 14 сентября 2010

Я бы рекомендовал просмотреть Элементы управления пользователя .

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

По крайней мере, стоит взглянуть.

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