Стыковка дочерних окон в формах MDI - PullRequest
2 голосов
/ 07 января 2012

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

Image1, прежде чем нажать на любую форму:

enter image description here

Image2, после нажатия на W2:

enter image description here

Разница в том, что, когда самое левое закрепленное окно получает фокус, оно меняет свой размер на конец справа от окна MDI без упоминания окна W1.

Как я могу исправить эту проблему? Спасибо.

Ответы [ 2 ]

1 голос
/ 22 января 2013

Есть еще одно исправление для этого. Очень быстрый пример:

  • Создать новую форму окна (Form1). Установите для его свойства isMidiContainer значение true.
  • Теперь поместите панель (Panel1) на нее и установите для свойства ее закрепления значение right, а затем установите ширину.
  • Перетащите еще одну панель (панель 2) на форму и установите ее док также справа. Теперь эти две панели закреплены рядом друг с другом.

Теперь создайте 2 новые формы окна (Форма 2 и Форма 3).

Теперь, в основной форме Form1, чуть ниже InitializeComponent (), добавьте:

Form2 f2 = new Form2();
f2.TopLevel = false;
f2.Dock = DockStyle.Fill;
panel1.Controls.Add(f2);
f2.Show();

Form3 f3 = new Form3();
f3.TopLevel = false;
f3.Dock = DockStyle.Fill;
panel2.Controls.Add(f3);
f3.Show();

Это немного другой подход, но он должен работать просто отлично.

0 голосов
/ 07 января 2012

Вы пытались самостоятельно установить размер в методе Resize дочерней формы (W2)?

    //something like this
    private void W2_Resize(object sender, EventArgs e)
    {
        Size pSize = this.ClientSize;
        // Resize the form
    }

Или, может быть, вы используете метод Focus.Я не знаю, может ли это вызвать проблемы с перфорацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...