C#メモ SplitContainerのPanel1かPanel2にFormを表示してみる
はじめに
とあるアプリを作ろうと思って困ったので、メモ。
ポイントはこんなんかなぁ…。
- SplitContainerに表示するFormをインスタンス化する
- インスタンス化したFormのTopLevelってプロパティをfalseに変更する
- SplitContainerのPanelのControlsコレクションでAddメソッドを使ってFormを追加する
※今回はフォームがロードされたときのコールバックで表示することにする - FormのShowメソッドで表示する
準備と実装
フォームを作成する
まずはメインにするフォーム(名前はMainFormにしとく)はこんな感じ。
フォームにSplitContainer(名前はMainSplitContainerにしとく)を追加する。
実行したときに区別がつくようにSplitContainerのPanel1とPanel2の背景色は変えといた。
んで、SplitContainerに配置するフォーム(名前はSubFormにしとく)はこんな感じ。
これも区別がつくようにLabelを追加しといた。
SplitContainerのプロパティのうち、FromBorderStyleってプロパティをNoneに変更する
コードを書く
んで、コード。
今回はMainFormでフォームがロードされたとき(Loadイベント)にSubFormを表示することにする。
あと、SubFormはPanel2に表示することに。
Loadイベントのコードはこんな感じ。
private void MainForm_Load(object objSender, EventArgs objEventArguments) { try { // SplitContainerのPanelに表示するフォームをインスタンス化する SubForm objSubForm = new SubForm(); // フォームのTopLevelってプロパティをfalseにする objSubForm.TopLevel = false; // フォームをSplitContainerに追加する MainSplitContainer.Panel2.Controls.Add(objSubForm); // フォームを表示する objSubForm.Show(); } catch (Exception exception) { // 例外が起きたときはコンソールに例外のメッセージを表示する System.Console.WriteLine(exception.Message); } finally { // 今回は何もしない ; } }
実行
実行すると、こんな感じ。
おわりに
あとは見た目をうまいことすれば使えるようになるかな…。
んま、メモってことで。
ディスカッション
コメント一覧
まだ、コメントがありません