Почему Cascading также изменяет размеры форм? - PullRequest
0 голосов
/ 01 декабря 2011

Пользователь открывает дочернюю форму, немного изменяет ее размер, затем открывает другую форму, и я звоню

this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade);

когда мы открываем дочернюю форму. Так что да, это каскадирует их, но также изменяет их размер до некоторого размера по умолчанию. Я не знаю, откуда он их получает. Да, я хочу, чтобы вторая форма была каскадно добавлена ​​к первой форме, но Нет, я не хочу, чтобы размер и расположение предыдущих форм менялись каждый раз, когда мы вызываем этот метод Cascade. Что я должен сделать, чтобы это исправить?

1 Ответ

1 голос
/ 01 декабря 2011

Вот что такое каскадирование: он изменяет их размеры и выстраивает их в ступенчатую конфигурацию.

Если вы просто хотите поднять другую форму наверх, вы можете попробовать позвонить myChildForm.Select();

Вы можете попытаться установить свойства MinimumSize и MaximumSize равными Size каждой формы перед каскадом, а затем восстановить их.

List<Size> minSizes = new List<Size>();
List<Size> maxSizes = new List<Size>();
for (int i = 0; i < this.MdiChildren.Count(); i++) {
  minSizes.Add(this.MdiChildren[i].MinimumSize);
  maxSizes.Add(this.MdiChildren[i].MaximumSize);
  this.MdiChildren[i].MinimumSize = this.MdiChildren[i].Size;
  this.MdiChildren[i].MaximumSize = this.MdiChildren[i].Size;
}

this.LayoutMdi(MdiLayout.Cascade);

for (int i = 0; i < this.MdiChildren.Count(); i++) {
  this.MdiChildren[i].MinimumSize = minSizes[i];
  this.MdiChildren[i].MaximumSize = maxSizes[i];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...