在现在写的一个控件中,我想根据窗体的设置进行加载窗体,因此使用反射,将窗体的信息添加到数据库中,不知道窗体在什么地方,也不知道窗体的更多信息,因此使用反射来创建窗体。
代码如下:
代码如下:
#region 点击菜单项显示窗体
/// <summary>
/// 点击菜单项显示窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void menuItem_Click(object sender, EventArgs e)
{
// 获得窗体的名空间
string strForm = (sender as ToolStripMenuItem).Tag.ToString();
// 获得Assembly
Assembly assembly = Assembly.GetExecutingAssembly();
// 实例化窗体
Form form = assembly.CreateInstance(strForm) as Form;
// 窗体设置
form.TopLevel = false;
form.WindowState = FormWindowState.Maximized;
form.FormBorderStyle = FormBorderStyle.None;
// 加载窗体
this.panelContainer.Controls.Clear();
this.panelContainer.Controls.Add(form);
// 显示窗体
form.Show();
}
#endregion