Дубликат ControlBox

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

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

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

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

Есть идеи, почему это будет?

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

Спасибо ш

2 ответа

Решение

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

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

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

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

Я нашел:

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

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

Другие вопросы по тегам