Дублировать блок управления

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

Вот что я наблюдаю, и я не знаю, как это происходит или как это исправить.

  1. Граница формы MDIchild отображается над полосой меню формы MDIparent.
  2. Форма MDIchild имеет два значка в левом верхнем углу.
  3. Форма MDIchild имеет два элемента управления в правом верхнем углу.

альтернативный текст

Любые идеи, почему это будет?

Я был бы очень рад, если бы граница окна MDIChild (включая значки и блоки управления) была полностью удалена.

Спасибо, Ш.


person Superhuman    schedule 10.01.2011    source источник


Ответы (2)


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

frmChild.WindowState = FormWindowState.Normal
frmParent.Show()  'frmChild.Show called within form_load of parent
frmChild.WindowState = FormWindowState.Maximized

И да, я установил для FormBorderStyle дочернего окна значение None, но, как я уже сказал, мне не нужно приложение MDI.

Я думаю, что это должно быть ошибкой в ​​​​Visual Studio. Если так много людей испытывают с этим трудности, это не может быть правильным.

person Superhuman    schedule 27.01.2011

Я нашел:

Вызовите Show() в форме MDI перед установкой свойства WindowState в дочерней форме, чтобы избавиться от нескольких блоков управления.

Не устанавливайте для WindowState значение Maximized в конструкторе — сделайте это в коде после того, как вы показали родителя.

person anon    schedule 08.02.2011