我有这段代码:
LoginForm loginform = new LoginForm();
loginform.TopLevel = false;
panelcenter.Controls.Add(loginform);
loginform.Show();
现在我想做一个像这样的方法:
private void AddFormToPanelCenter(string Form_0, string name)
{
Form_0 name = new Form_0();
name.TopLevel = false;
panelcenter.Controls.Add(name);
name.Show();
}
问题是我的参数是字符串,显然它不正确,但我不知道应该使用哪些参数。
答案 0 :(得分:2)
您不需要传递任何参数,因为它不需要它。
private void AddFormToPanelCenter()
{
Form name = new Form();
name.TopLevel = false;
panelcenter.Controls.Add(name);
name.Show();
}
答案 1 :(得分:1)
如果您希望能够在任何表单实例上应用您的方法,您可以将表单实例本身传递给您的方法(您也可以传递父面板),如下所示:
void AddFormToPanel(Form frm, Panel pnl)
{
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
}
<强>用法:强>
LoginForm frm = new LoginForm();
AddFormToPanel(frm, panelcenter);
如果您的表单始终为LoginForm
但您希望能够使用该实例,则可以使用上一个方法,或将其转换为返回表单实例的函数:
public Form AddFormToPanel(Panel pnl)
{
LoginForm frm = new LoginForm ();
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
return frm;
}
<强>用法:强>
LoginForm frm = (LoginForm)AddFormToPanel(panelcenter);
此外,在任何表单上应用该方法的更好方法是使用泛型类,以便您可以传递类型而不是它的实例。您可以使用以下内容:
public class NewForm<T> where T : Form, new()
{
public static void AddFormToPanel(Panel pnl)
{
T frm = new T();
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
}
}
<强>用法:强>
NewForm<LoginForm>.AddFormToPanel(panelcenter);
希望有所帮助:)