0

form1 を form2 内に表示/配置できるかどうかを知りたいです。form1 が form2 内にスタックされるようにします。

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

2

はい。あなたが探している言葉は、MDIまたは Multiple Document Interface です。

次のように、 form2 のIsMdiContainerプロパティをtrue に設定し、form1 のMdiParentプロパティを form2 に設定するだけです。

form2.IsMdiContainer = true;
form1.MdiParent = form2;

もちろん、プロパティ セクションでプロパティを設定することにより、ビジュアル デザイナーに最初の行を記述させます。

ここに画像の説明を入力

編集

簡単な例を次に示します。2 つのフォームがあるとします。FormContainerFormChildFormContainerアプリケーションのメインフォームです。

FormContainerIsMdiContainerプロパティが に設定されていることを確認するtrueだけで、インスタンスのプロパティを設定することで、他のフォームのインスタンスをこのフォームに追加できますMdiParent。メイン フォームを除いて、Formクラスまたはサブクラスのインスタンスはデフォルトでは非表示です。

public partial class FormContainer : Form {

    public FormContainer() {
        InitializeComponent();
        this.IsMdiContainer = true;
        // if you're not excited about the new form's backcolor
        // just change it back to the original one like so
        // note: The dark gray color which is shown on the container form
        //       is not it's actual color but rather a misterious' control's color.
        //       When you turn a plain ol' form into an MDIContainer
        //       you're actually adding an MDIClient on top of it

        var theMdiClient = this.Controls
            .OfType<Control>()
            .Where(x => x is MdiClient)
            .First();
        theMdiClient.BackColor = SystemColors.Control;
    }

    private void FormContainer_Load(object sender, EventArgs e) {
        var child = new FormChild();
        child.MdiParent = this;
        child.Show();

        // if you wish to specify the position, size, Anchor or Dock styles
        // of the newly created child form you can, like you would normally do
        // for any control
        child.Location = new Point(50, 50);
        child.Size = new Size(100, 100);
        child.Anchor = AnchorStyles.Top | AnchorStyles.Right;
    }

}
于 2013-09-17T15:05:58.353 に答える