2011-10-12 73 views
0

有人写过一个通用的“LaunchForm”函数吗?对于我打开表单的所有菜单项,我想编写一个函数来启动表单,而不是多次编写相同的代码。通用打开窗体函数

任何提示将非常有帮助。

它的的WinForms + vb.net

感谢 TR

+0

我建议你发布你写了一遍又一遍,所以我们可以使它通用帮助的代码。 – ja72

+0

昏暗childForm作为新的 “窗体名称” childForm.MdiParent =甲基 childForm.StartPosition = FormStartPosition.CenterScreen childForm.Show() “窗体名称” 是30种不同的形式 – TeddyRuxpin

回答

2

你的意思是这样的?

C#

public F Launch<F>() where F : Form, new() 
{ 
    F dlg = new F(); 
    dlg.MdiParent = this; 
    dlg.Show(); 
    return dlg; 
} 

VB.NET

Public Function Launch(Of F As {Form, New})() As F 
    Dim dlg As New F() 
    dlg.MdiParent = Me 
    dlg.Show() 
    Return dlg 
End Function 
+0

看起来大约正确的。 什么公共F启动()其中F:Form,new() 翻译成vb是什么? – TeddyRuxpin

0

您可以附加表单类型的菜单项的.TAG财产。将单个事件处理程序连接到所有菜单项单击事件,并将.Tag属性值(表单类型)传递给创建新实例并显示它的函数。或者,如果每个表单都是单身人士,您可以创建一个(MenuItem,Form)的字典,预先填充表单实例并执行相应的查找/显示。甚至可以跳过字典,弹出窗体实例并将其放入菜单项的.Tag属性中。

有各种各样的选择,不知道预期的用法很难建议一个。