MDI Child.show () отображает форму странным образом - PullRequest
1 голос
/ 16 июня 2009

У меня есть основная форма, в которой 5 детей с ДИ. Когда создается основная форма, создаются и отображаются дочерние элементы mdi.

Я назначаю им разные местоположения на экране, но когда они отображаются, они начинают с местоположения по умолчанию и беспокоящим образом перемещаются в новые местоположения. Я пытался назначить местоположение до того, как я покажу формы, но, как и ожидалось, после вызова метода .Show () они, как правило, переходят в какое-то местоположение по умолчанию. Есть ли способ избежать показа этого движения по умолчанию в новых местах?

Вот фрагмент кода

groupSettingsForm.Show();
        groupSettingsForm.Location = new Point(0, 0);
        dsForm.Show();
        dsForm.Location = new Point(groupSettingsForm.Width, 0);
        dPlots.Show();
        dPlots.Location = new Point(groupSettingsForm.Width, dsForm.Height);
        alertsForm.Show();
        alertsForm.Location = new Point(groupSettingsForm.Width, dsForm.Height + dPlots.Height);
        dataValuesForm.Show();
        dataValuesForm.Location = new Point(0, groupSettingsForm.Height);

Я попробовал это, но у меня это не сработало

   groupSettingsForm.Location = new Point(0, 0);
        groupSettingsForm.Show();

        dsForm.Location = new Point(groupSettingsForm.Width, 0);
        dsForm.Show();

        dPlots.Location = new Point(groupSettingsForm.Width, dsForm.Height);
        dPlots.Show();

        alertsForm.Location = new Point(groupSettingsForm.Width, dsForm.Height + dPlots.Height);
        alertsForm.Show();

        dataValuesForm.Location = new Point(0, groupSettingsForm.Height);
        dataValuesForm.Show();

1 Ответ

1 голос
/ 16 июня 2009

У меня просто было что-то похожее на это - мой вопрос можно найти здесь .

Вам необходимо установить для свойства StartPosition значение FormStartPosition.Manual:

form.StartPosition = FormStartPosition.Manual;
form.Location = new System.Drawing.Point(0, 0);
...