C# 创建全局方法以显示窗体
我想创建一个全局方法C# 创建全局方法以显示窗体,c#,winforms,C#,Winforms,我想创建一个全局方法showFrm(formformtoshow),我可以从项目中的任何地方访问它 我试过了 Form1 frm = new Form1(); frm.mdiParent=this; frm.show(); 将此方法放在“唯一父窗体”类中: public void ShowMdiChild(),其中T:Form,new() { var form=newt(); form.MdiParent=此; form.Show(); } 用法: public void ShowMdiCh
showFrm(formformtoshow)
,我可以从项目中的任何地方访问它
我试过了
Form1 frm = new Form1();
frm.mdiParent=this;
frm.show();
将此方法放在“唯一父窗体”类中:
public void ShowMdiChild(),其中T:Form,new()
{
var form=newt();
form.MdiParent=此;
form.Show();
}
用法:
public void ShowMdiChild<T>() where T: Form, new()
{
var form = new T();
form.MdiParent = this;
form.Show();
}
yourlonlyparentform.ShowMdiChild();
我还要提醒您,C#是区分大小写的。将此方法放在“only parent form”类中:
public void ShowMdiChild(),其中T:Form,new()
{
var form=newt();
form.MdiParent=此;
form.Show();
}
用法:
public void ShowMdiChild<T>() where T: Form, new()
{
var form = new T();
form.MdiParent = this;
form.Show();
}
yourlonlyparentform.ShowMdiChild();
我还要提醒您,C#是区分大小写的。您遇到了什么错误?还有,方法,而不是函数。当然,您会得到一个错误,您会传递一个类型为的实例,然后尝试从中创建实例。那显然是不可能的。但是为什么需要这样做呢?要一次又一次地编写单行而不是3,您是否确定在调用
Show
之前始终使用相同的(无参数)构造函数,并且从不设置除MdiParent
之外的任何内容?错误=找不到类型或命名空间名称“formToShow”(是否缺少using指令或程序集引用?)你犯了什么错误?还有,方法,而不是函数。当然,您会得到一个错误,您会传递一个类型为的实例,然后尝试从中创建实例。那显然是不可能的。但是为什么需要这样做呢?要一次又一次地编写单行而不是3,您是否确定在调用Show
之前始终使用相同的(无参数)构造函数,并且从不设置除MdiParent
之外的任何内容?错误=找不到类型或命名空间名称“formToShow”(是否缺少using指令或程序集引用?)
yourOnlyParentForm.ShowMdiChild<SomeForm>();