Строка заголовка дочерней формы Windows MDI - PullRequest
1 голос
/ 15 октября 2010

Дочерние формы MDI, если они показаны, отображают заголовки в течение доли секунды Тогда формы загружаются нормально. Есть ли способ загрузки форм без отображения строки заголовка и границы формы. Вот что происходит ...

alt text

alt text

Ответы [ 2 ]

3 голосов
/ 15 октября 2010

Не уверен, что я вижу это на скриншотах. Но жалоба знакома. MDI действительно не любит развернутое дочернее окно. Когда вы отображаете новое дочернее окно и делаете его максимально развернутым, тогда оно должно пройти через песню и танец. Сначала он восстанавливает текущий дочерний элемент, поэтому он больше не максимизируется. Затем создает нового потомка и устанавливает для него фокус. Тогда максимизирует это. Эти промежуточные этапы видны и могут дать хорошее мерцание, когда рисование ребенка стоит дорого. Твой взгляд дорогой. Вы не можете подавить картину.

Если вы всегда отображаете свои дочерние окна MDI развернутыми, то MDI - неправильная модель формы для использования. Просто используйте простую форму, сделайте дочерние элементы управления окнами. Вы даже можете спасти свои текущие дочерние формы, установив для их свойства TopLevel значение false, что превращает их в элементы управления. Установите для FormBorderStyle значение None, а для параметра Visible - значение true.

1 голос
/ 21 ноября 2011

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

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

...