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();
}
相应TreeView的点击事件的处理
最新推荐文章于 2023-11-03 22:17:08 发布