//パネルにフォームを埋め込む private void setMainPanelform(frmBFForm frm) { frm.Dock = DockStyle.Fill; //TopLevelをFalseにする frm.TopLevel = false; this.splitContainer2.Panel2.Controls.Add(frm); if (this.splitContainer2.Panel2.Controls.Count > 1) { this.splitContainer2.Panel2.Controls.RemoveAt(0); } }
//---------------------------------------------------------------------- // コールバックイベント from frmUserAccount //---------------------------------------------------------------------- private void CallBackEventProgress(frmBFForm.MyEventArgs e) { //MessageBox.Show(e.commandNumValue.ToString() + ":" + e.commandStringValue); switch (e.commandNumValue) { case 99999: //ユーザアカウント runF = null; //ユーザアカウント保守が終了したのでユーザーコントロールを表示 button5.PerformClick(); break; default: MessageBox.Show("何も設定されていません"); break; } }
//動的にフォームをインスタン化して表示する。 private void setMainPanelform(string filename, string formname) { ////アセンブリ"WindowsApplication1.exe"を読み込む //System.Reflection.Assembly asm = // System.Reflection.Assembly.LoadFile("WindowsApplication1.exe"); // カレントディレクトリの取得 string stCurrentDir = System.Environment.CurrentDirectory; stCurrentDir = stCurrentDir + @"\" + filename; System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFile(stCurrentDir); ////Form1のTypeを取得する //Type t = asm.GetType("WindowsApplication1.Form1"); Type t = asm.GetType(formname); if (t == null) { MessageBox.Show("Typeの取得で異常です。"); return; } //Formのインスタンスを作成する object frm = t.InvokeMember(null, System.Reflection.BindingFlags.CreateInstance, null, null, new object[] { pb2com }); //Baseフォームにキャスト runF = (frmBFForm)frm; //frm.Dock = DockStyle.Fill; runF.Dock = DockStyle.Fill; ////TopLevelをFalseにする //frm.TopLevel = false; runF.TopLevel = false; this.splitContainer2.Panel2.Controls.Add(runF); if (this.splitContainer2.Panel2.Controls.Count > 1) { this.splitContainer2.Panel2.Controls.RemoveAt(0); } //最前面へ移動 runF.BringToFront(); //---------------------------------------------------------------------- // イベントハンドラの追加(コールバックイベントの追加) //---------------------------------------------------------------------- //f.MyProgressEvent += new frmUserAccount.MyEventHandler(CallBackEventProgress); runF.MyProgressEvent += new frmBFForm.MyEventHandler(CallBackEventProgress); ////Form1のShowDialogメソッドを呼び出し、フォームを表示する //object result = t.InvokeMember("ShowDialog", // System.Reflection.BindingFlags.InvokeMethod, // null, frm, // null); //フォームを表示する runF.Show(); //モーダルダイアログとして表示出来ない。 //f.ShowDialog(); //button5.BackColor = saveColor; }