我想知道下面是否有另一种方法可以在此方法中执行此代码,因为我在几乎所有表单中都使用不同的表单实例来调用此方法。 所以我需要创建如下代码:
public void NewForm(Form target)
...
target myform = new target();
target.Show();
...
并这样称呼:
NewForm(Form2);
答案 0 :(得分:2)
我不知道这种方法有多有用,但是,您可以采用几种方法。
定义:
void NewForm<T>()
where T : Form, new()
{
T instance = new T();
instance.show();
}
调用:
NewForm<LayoutForm>();
定义:
void NewForm(Type formType)
{
if(formType.IsSubclassOf(typeof(Form)))
{
var form = Activator.CreateInstance(formType) as Form;
form.show();
}
}
调用:
NewForm(LayoutForm);
Activator.CreateInstance(x);
创建类型,则抛出该异常定义:
void NewForm(Form form)
{
form.show();
}
调用:
NewForm(new LayoutForm());
答案 1 :(得分:0)
感谢Hans Passant的代码以及向我展示通用方法的其他人。我不知道这种通用方法。
Class.cs
public void NewForm<T>() where T:Form, new()
{
T frm = new T(); ...
frm.Show();
}
Form.cs
private void button1_Click_1(object sender, EventArgs e)
{
NewForm<Form2>();
}