private void tvmenu_AfterSelect(object sender, TreeViewEventArgs e) { ReflectInitForm(e); } private void ReflectInitForm(TreeViewEventArgs e) { string formInputName = e.Node.Tag.ToString(); string formName = ""; string argsInputName = ""; string[] args = new string[10]; bool hasArgs = false; if (string.IsNullOrEmpty(formInputName)) return; //防止輸入錯誤,使用中文括弧 formInputName = formInputName.Replace("(", "("); formInputName = formInputName.Replace(")", ")"); if (formInputName.Contains("(") && formInputName.Contains(")")) { int bracketStartIndex = formInputName.IndexOf('(');//括弧起始位置 int bracketEndIndex = formInputName.IndexOf(')');//括弧起始位置 formName = formInputName.Substring(0, bracketStartIndex); argsInputName = formInputName.Substring(bracketStartIndex + 1, bracketEndIndex - bracketStartIndex - 1); args = argsInputName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); hasArgs = true; } else { formName = formInputName; } System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); Type type = null; foreach (string typeSpace in assemblySpace)//根據類型所在命名空間.Form名稱反射 { string sss = string.Format("{0}.{1}", typeSpace, formName); type = assembly.GetType(sss); if (type != null) break; } if (type != null) { object obj = null; if (hasArgs) { obj = Activator.CreateInstance(type, args); } else { obj = Activator.CreateInstance(type); } if (obj != null) { Form formToShow = (Form)obj; showForm(formToShow); } } else return; } public void showForm(Form form2) { //背景圖片置空 this.Right_Panel.BackgroundImage = null; foreach (Form frm in this.Right_Panel.Controls) { frm.Close();//關掉以前的視窗 } form2.FormBorderStyle = FormBorderStyle.None; form2.Dock = DockStyle.Fill; form2.TopLevel = false; form2.Parent = Right_Panel;//設定將其放在Right_Panel的位置中 FrmMain frmMain = new FrmMain(); form2.Show(); }