-1

MDI フォームであるメイン フォームと子フォームを作成しました。

MDI フォームを「最大化」または「復元」するたびに、子フォームを親 MDI フォームの中央に配置するにはどうすればよいですか?

4

3 に答える 3

2

MDI アプリケーションで子フォームをフォームの中央に開き、サイズを変更するために何をしてもそこに保持する必要があることを理解しているかどうかを確認させてください。Mdi インターフェースには、フォームの配置方法に関する独自のアイデアがあります。最初のステップは、load イベントで子フォームの位置を設定することです。次に、Parents Resize イベントを使用して、子フォームを中央に保持できます。これは 2 つのフォームを使用したサンプルです。探しているものかどうかを確認してください。

Form1 Mdi 親

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Form2 frm2 = new Form2();
        frm2.MdiParent = this;
        frm2.Show();
    }

    protected override void OnResize(EventArgs e)
    {
        CenterForms();
        base.OnResize(e);
    }
    private void CenterForms()
    {
        foreach (var form in MdiChildren) //This will center all of the Child Forms
        {
            form.Left = (ClientRectangle.Width - form.Width) / 2;
            form.Top = (ClientRectangle.Height - form.Height) / 2;
        }

    }
}

Form2 Mdi 子

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        Left = (MdiParent.ClientRectangle.Width - Width) / 2;
        Top = (MdiParent.ClientRectangle.Height - Height)/2;
    }
}
于 2013-08-31T03:00:34.770 に答える
0

子フォームの開始位置を Parent Like This の中央に設定するだけです

あなたの子供フォーム

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
于 2013-12-20T08:09:08.303 に答える