WinForm如何动态加载用户控件,在线等。
新建两个用户控件UserControl1 和UserControl2 在主窗体上新建两个按钮和Panel。如何才能点击两个按钮时让panel加载不同的用户控件。关键是我想把加载用户控件的功能写成一个函数,点击按钮时传递参数给这个函数然后函数就能加载用户控件。
希望各位能给个参考代码。 --------------------编程问答-------------------- UserControl1 uc = new UserControl1();
uc.CustomValue = "动态加载";
uc.UserControlValueChanged += new TextBoxChangedHandle(userControl11_UserControlValueChanged);
this.Panel1.Controls.Add(uc);
--------------------编程问答--------------------
如何把加载功能写成一个函数。比如我有好多个用户控件。我想直接把用户控件名或其他传递给一个函数,这个函数就能加载这个用户控件。 --------------------编程问答-------------------- 问题已经解决。
--------------------编程问答--------------------
private void ShowUserControls(string UserControlName, DevExpress.XtraEditors.PanelControl PanelName)
{
PanelName.Controls.Clear();
Type t = System.Reflection.Assembly.GetExecutingAssembly().GetType(UserControlName);
UserControl uc = (UserControl)Activator.CreateInstance(t);
uc.Dock = DockStyle.Fill;
uc.Parent = PanelName;
}
//AssemblyName:程序集的全路径
//TargetEntityFullName:控件的命名空间+类名
public static Control LoadControl(string AssemblyName, String TargetEntityFullName)
{
Control ctr= null;
try
{
Assembly ass = Assembly.LoadFile(AssemblyName);
ctr = ass.CreateInstance(TargetEntityFullName, true, BindingFlags.CreateInstance, null, null, null, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
return ctr;
}
补充:.NET技术 , C#