UIDirector directorUI = new UIDirector();
UIActor actorUI = new UIActor();
private void directorToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenForm(directorUI);
}
private void actorToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenForm(actorUI);
}
void OpenForm(Form frm)
{
if (frm.IsDisposed)
{
frm = new UIDirector();
}
frm.Show();
frm.MdiParent = this;
}发布于 2019-11-17 19:22:21
我刚刚意识到你在问什么,并决定创建一个新的答案。
为它创建一个扩展方法。
public static class UIExtensions
{
public static void Present(this Form form, Form parent)
{
form.MdiParent = parent;
form.Show();
}
}然后你就可以用actorUI.Present(this);
发布于 2019-11-15 03:50:06
您可以使用new通用约束来创建具有无参数构造函数的特定对象。
UIDirector directorUI = new UIDirector();
UIActor actorUI = new UIActor();
private void directorToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenForm(directorUI);
}
private void actorToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenForm(actorUI);
}
void OpenForm<T>(T frm) where T: Form, new()
{
if (frm.IsDisposed)
{
frm = new T();
}
frm.Show();
frm.MdiParent = this;
}https://stackoverflow.com/questions/58864137
复制相似问题