Панель SplitContainer в качестве родителя MDI для других форм - PullRequest
0 голосов
/ 20 ноября 2010

У меня есть элемент управления с добавлением Splitcontainer. Я хочу разместить другие формы на второй панели (Panel2). Однако невозможно установите для свойства MDIParent новой формы значение Panel2.

Таким образом, вопрос - как я могу установить панель SplitContainer's в качестве MDIParent для других элементов управления?

Заранее спасибо за подсказки!

ура

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Если вы хотите создать форму Panel-Splitter-MdiClient, см. панель и MDI в c #

1 голос
/ 20 ноября 2010

MDIParent может быть только другой формой. Что вам нужно сделать, это установить TopLevel в False для дочерней формы. Затем вы можете добавить его к любому элементу управления так же, как и к любому другому элементу управления (добавив его в коллекцию Controls родительского элемента управления). Однако он не будет работать так, как в контейнере MDI (так как вы не сможете свернуть или развернуть его).

0 голосов
/ 20 ноября 2010

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

Некоторые события и методы, которые следует иметь в виду:

  • subformPanel.ParentChanged (выполнить некоторую инициализацию и подписаться на любые родительские события)
  • subformPanel.ParentChanged (выполнить очистку и отписаться от родительских событий)
  • Parent.Controls.Remove (уничтожить панель subformPanel)
...