Form
の画面レイアウトが一杯になってきて設定画面を切り離したいときとかに、子ウィンドウを出したくなると思います。
今回はモーダルウィンドウ(閉じるまで親のForm
を操作できない)を表示させます。
モーダルウィンドウ モードレスウィンドウ - Google検索
画面キャプチャ
サンプルソースコード
usingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;classMainForm:Form{MainForm(){Text="Main window";ClientSize=newSize(400,300);varbtn=newButton(){Size=newSize(200,50),Text="Show sub window.",};Controls.Add(btn);btn.Click+=(s,e)=>{ShowSubFormWithText("this is a sample.");};}staticvoidShowSubFormWithText(stringtext){SubFormf=newSubForm(text);f.ShowDialog();}[STAThread]staticvoidMain(string[]args){Application.Run(newMainForm());}}classSubForm:Form{publicSubForm(stringtext){Text="Sub window";ClientSize=newSize(300,150);StartPosition=FormStartPosition.CenterParent;// StartPosition = FormStartPosition.CenterScreen;vartxt=newTextBox(){Text=text,Multiline=true,ScrollBars=ScrollBars.Both,Dock=DockStyle.Fill};txt.KeyDown+=(sender,e)=>{if(e.Control&&e.KeyCode==Keys.A){txt.SelectAll();}};Controls.Add(txt);}}
・・・
入力データの受け取りとか加筆予定・・