我使用方法重复打开新表单的代码,我想使用方法,所以当我选择一个按钮时,它会打开相应的表单。 因此,当单击按钮时,我的var将会更改,我会将其传递给方法以更改打开的表单。 我有按钮点击和打开新表单的所有代码,只是我的朋友和我都不能想到如何做到这一点。
private void OPENCUSTOMER(object sender, EventArgs e, string FormName)
{
this.Hide();
var CUSTOMERFORM = new CUSTOMERFORM();
CUSTOMERFORM.Show();
}
而不是重复打开新表单的代码我认为我可以使用该方法。但我不知道格式化它所以我可以有一个字符串,我可以为每次点击更改并将其插入到方法中。
private void OPENCUSTOMER(object sender, EventArgs e, string FormName,string FormName)
{
FormName="CUSTOMERTABLE";
OpenNewForm(FormName)
}
public static OpenNewForm(string NewForm)
{
this.Hide();
var NewForm = new NewForm();
NewForm.Show();
}
我使用方法重复打开新表单的代码,我想使用方法,所以当我选择一个按钮时,它会打开相应的表单。 因此,当单击按钮时,我的var将会更改,我会将其传递给方法以更改打开的表单。 我有按钮点击和打开新表单的所有代码,只是我的朋友和我都不能想到如何做到这一点。
答案 0 :(得分:0)
如果你真的确实需要实现public static OpenNewForm(string NewForm)
,其中NewForm
是表单的类名,可以使用反射来完成 - 但你有一个非常好的想要这个的原因。我建议您将其声明为OpenNewForm<T>(T form) where T : Form
,并使用OpenNewForm<CustomerForm>
()调用它。
答案 1 :(得分:0)
正如Dylan所说,你可以用反射来做到这一点,但这可能有点先进,因为你已经说过你在编码方面仍然相当新。您遇到的问题是表单的名称。
string NewForm
不等于作为表单的实际对象。把字符串想象成汽车的名字;有人给你一张带有那个名字的卡片,你就没有车了。既不知道汽车的名字也可以创造那辆汽车。这一行:
var NewForm = new NewForm();
无法工作(因为您已经将NewForm声明为字符串)
尝试最大程度地减少代码和代码重复是令人钦佩的,但在这种情况下,我个人会离开它,并且每个按钮都需要两到三行代码才能打开适用的表单(但是继续寻求最小化其他领域的代码)。希望有用。