C# 如何编写执行此代码的函数
我使用以下代码在MDI窗口中创建和显示表单:C# 如何编写执行此代码的函数,c#,winforms,mdiparent,C#,Winforms,Mdiparent,我使用以下代码在MDI窗口中创建和显示表单: if (currentForm != null) { currentForm.Dispose(); } currentForm = new ManageCompanies(); currentForm.MdiParent = this; currentForm.Show(); currentForm.WindowState = Fo
if (currentForm != null) {
currentForm.Dispose();
}
currentForm = new ManageCompanies();
currentForm.MdiParent = this;
currentForm.Show();
currentForm.WindowState = FormWindowState.Maximized;
我用这个代码显示了大约20个不同的表单
我想写一个这样的函数:
private void ShowForm(formClassName) {
if (currentForm != null) {
currentForm.Dispose();
}
currentForm = new formClassName();
currentForm.MdiParent = this;
currentForm.Show();
currentForm.WindowState = FormWindowState.Maximized;
}
我是否必须以字符串或其他形式发送formClassName;以及如何将其包含在代码中。。。
我想要最终的代码…尝试泛型:
public void ShowForm<FormClass>() where FormClass: Form,new() {
if (currentForm != null) {
currentForm.Dispose();
}
currentForm = new FormClass();
currentForm.MdiParent = this;
currentForm.Show();
currentForm.WindowState = FormWindowState.Maximized;
}
您还必须指定:
private void ShowForm<FormClass> where T : Form, new() {
private void ShowForm其中T:Form,new(){
请注意此处的new(),以便您可以默认构造FormClass,否则它将不允许您构造它。选择整个代码块,然后按Ctrl-K或手动缩进4个空格。您的大多数问题是:“我想要…”本网站为您提供帮助,但不要认为这是理所当然的,请更好、礼貌地阐述您的问题,而不仅仅是我想要……无需我做任何其他努力就给我最终的代码……如果您只允许一个儿童窗口处于活动状态,那么使用MDI是没有意义的。@Davide Piras,我感谢您的评论……我将我记住了…我认为只有这个问题和其他问题是你提到的那种…在接下来的问题中,我将更好地阐述这些问题…尽可能有用…@Hans Passant,我是winforms开发的新手…我使用MDI保留一个通用工具栏和菜单栏…并更改内部页面…就像usi一样ng asp.net中的母版页…如果它是
:Form
,我不确定是否需要它。我把它放在那里,然后将它删除。它不是where T
它是where FormClass
,因为这是您命名类型变量的地方。@Aliostad,否则他将如何访问mdipparent,Show()和WindowsState
?你说的不会伤害你是什么意思,没有它你的代码就无法编译,它真的很伤害:)这就是为什么我们要指出编译错误。我们是一群受过专门训练的猴子,他们可以编译代码而不使用VS。
private void ShowForm<FormClass> where T : Form, new() {