我的winforms项目中有3个表单,所有表单都有一个按钮,可以触发打开Form2的相同代码。我需要通过将此代码放在同一项目内的类文件中或将其放入单独的类库来集中代码。现在,代码与下面的代码形式相同:
frm1 entryform = (frm1)Application.OpenForms["frm1"];
if (entryform == null)
{
entryform = new frmMainMenu();
}
entryform.StartPosition = FormStartPosition.Manual;
entryform.Location = this.Location;
entryform.Show();
this.close();
当我将此代码从Form1,Form2,Form3移动到公共表单时,我无法访问调用表单来替换行this.close();
是否有类似Method.CallingForm.Close()的属性或c#中的某些内容?请帮忙
我不想将表单作为参数传递。表格太重,无法通过。还有其他选择吗?
答案 0 :(得分:2)
您不必担心将表单作为参数传递,因为它很重。
表单是引用类型,不会导致性能下降。
如果您想考虑最佳做法,您应该让中心类在需要关闭表单时触发事件。
答案 1 :(得分:0)
将表单作为参数传递。
表单中的NOT表示重要,因为你传递的只是对表单的引用,而不是整个表单。