Дубликат ControlBox
Я унаследовал приложение, которое было запущено как программа MDI, но никогда не проводилась необходимая фоновая работа для полной поддержки MDI. Я пытаюсь встроить достаточно поддержки MDI, чтобы приложение хорошо выглядело и работало как приложение SDI.
Вот что я наблюдаю, и я не знаю, как это происходит или как это исправить.
- Граница формы MDIchild показана над полосой меню формы MDIparent.
- Форма MDIchild имеет две иконки в левом верхнем углу.
- Форма 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 в дизайнере - делайте это в коде после того, как вы показали родительский элемент.