在开发包含许多 WinForms 的当前项目时,我发现自己变得杂乱无章,只是为了处理表单的打开/关闭事件。目前我正在像这样处理它们..
//Declare forms
myForm mForm1;
myForm2 mForm2;
private void btnSomething_Click(object sender, EventArgs e)
{
if (mForm1 == null)
{
mForm1 = new myForm();
mForm1.FormClosed += new FormClosedEventHandler(mForm1_FormClosed);
mForm1.Show();
}
else
if (mForm1.WindowState == FormWindowState.Minimized)
mForm1.WindowState = FormWindowState.Normal;
mForm1.Focus();
}
void mForm1_FormClosed(object sender, FormClosedEventArgs e)
{
mForm1 = null;
}
然后另一组空位来处理每个表单的打开/关闭。现在想象一下,我有 5 个表格,而不是 2 个表格。现在我更乱了。有没有一种方法可以概括这一点,让所有表单都具有相同的事件处理程序?
我想过也许在“as”语句中使用对象发送者,但我不确定如何从那里找到相关的声明表单实例。
sender as (form)
有任何想法吗?