MDI Child.show()以奇怪的方式显示表单

时间:2009-06-16 07:35:19

标签: c# .net winforms mdi

我有一个有5个MDI孩子的主表单。创建主窗体时,也会创建并显示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 个答案:

答案 0 :(得分:1)

我刚才有类似的事情 - my question can be found here

您需要将StartPosition属性设置为FormStartPosition.Manual

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