Высота родительского окна MDI уменьшается при восстановлении (после минимизации / максимизации), если максимизируется дочерний MDI - PullRequest
0 голосов
/ 20 ноября 2018

Всякий раз, когда я минимизирую или максимизирую родительскую форму MDI, когда она имеет увеличенную дочернюю форму, высота родительского MDI уменьшается примерно на 20 пикселей.

Я начал с .Net Framework 4.0, и у меня возникла эта проблема, поэтому я попробовал другие версии и продолжал иметь проблемы.

Вот несколько шагов для репликации (на этот раз попробуйте 4.7.1):

  1. Закрыты все экземпляры VS2017 и открыты VS2017.
  2. Файл> Создать> Проект.
  3. Имя: MdiTest2; Рамочная 4.7.2; Хит ОК.
  4. Установите для Form1 "IsMdiContainer" значение True.
  5. Щелкните правой кнопкой мыши проект> Добавить> Форма Windows ... Вызывается этот ChildForm.vb.
  6. Вернулся в форму Form1, дважды щелкнув форму.
  7. Установить событие загрузки Form1 следующим образом:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim frm As New ChildForm
        frm.MdiParent = Me
        frm.WindowState = FormWindowState.Maximized
        frm.Show()

    End Sub
  1. Начата отладка
  2. Перетащите родительскую форму куда-нибудь так, чтобы вы заметили изменения высоты формы (выровняйте нижнюю часть формы с другой формой, значком или верхней частью панели задач).
  3. Разверните форму и нажмите кнопку восстановления ... Измените размеры формы
  4. Сверните форму, а затем щелкните значок для нее на панели задач ...
  5. Обратите внимание, что форма изменяется (для меня), верхняя часть формы остается в исходном местоположении, но нижняя граница перемещается вверх на ~ 20 пикселей.
  6. Если я продолжу нажимать значок приложения на панели задач, он будет уменьшаться при каждом восстановлении формы.

Кто-нибудь может повторить это или это просто ошибка на моей машине? Мое разрешение 2560x1440, а масштабирование установлено на 100%. Если я изменю AutoScaleMode в Form1 и ChildForm с «Font» (по умолчанию) на «None», у меня все еще будет эта проблема. Если у меня нет развернутой формы дочернего элемента MDI при свернутом / развернутом родительском элементе MDI, высота родительского элемента MDI при восстановлении не уменьшается.

1 Ответ

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

Проведя долгий поиск и не найдя никого другого с этой ошибкой, я начал спрашивать себя: «Почему бы другим не было этой проблемы». Ну, у моей программы не будет MenuStrip, но почти у всех родительских форм MDI есть такая. Итак, догадываясь, я добавил полоску меню в форму, и это решило мою проблему. Затем я установил видимость MenuStrip на false и протестировал ... он все еще работает с видимостью MenuStrip, установленной на false.

...