Winform のフォームを別のフォームに埋め込むにはどうしたらいいですか?
WinFormでは、Panelコントロールを使用して別のウィンドウを現在のウィンドウに埋め込むことができます。手順は以下のとおりです。
- 親ウィンドウのデザイン画面で、Panel コントロールを見つけて追加します。
- 「パネル」コントロール上で右クリックし、「埋め込みランフォーム」を選択します。
- ポップアップの子画面を選択してください。
- 子ウィンドウがPanelコントロールに埋め込まれます。
埋め込み子フォームを配置する前に、埋め込んだ子フォームに合わせてパネル コントロールのサイズと位置を調整することをお勧めします。
さらに、コードの形でウィンドウを埋め込むことができ、具体的な手順は次のとおりです。
- 親ウィンドウのコードで、子ウィンドウのインスタンスを作成する。
- 子ウィンドウの TopLevel プロパティを false に設定して、トップレベルでないウィンドウとして表示します。
- 子ウィンドウの Parent プロパティを親ウィンドウ内のコンテナ コントロール(Panel や GroupBox など)に設定します。
- 子ウィンドウの Dock プロパティを設定して、コンテナー内での停泊方法を決定します
コード例:
ChildForm childForm = new ChildForm();
childForm.TopLevel = false;
childForm.Parent = panel1;
childForm.Dock = DockStyle.Fill;
childForm.Show();
上記の例では、panel1 は親ウィンドウ内の Panel コントロールで、childForm は組み込む子ウィンドウです。
コードで埋め込む場合は、適切なタイミングでレイアウト調整とリフレッシュ処理を行う必要がある事に注意してください。これにより、子フォームが正常に親フォームに表示されます。