form1 を form2 内に表示/配置できるかどうかを知りたいです。form1 が form2 内にスタックされるようにします。
どんな助けでも大歓迎です。前もって感謝します。
はい。あなたが探している言葉は、MDIまたは Multiple Document Interface です。
次のように、 form2 のIsMdiContainer
プロパティをtrue
に設定し、form1 のMdiParent
プロパティを form2 に設定するだけです。
form2.IsMdiContainer = true;
form1.MdiParent = form2;
もちろん、プロパティ セクションでプロパティを設定することにより、ビジュアル デザイナーに最初の行を記述させます。
編集
簡単な例を次に示します。2 つのフォームがあるとします。FormContainer
とFormChild
。
FormContainer
アプリケーションのメインフォームです。
FormContainer
のIsMdiContainer
プロパティが に設定されていることを確認する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;
}
}