【发布时间】:2017-03-10 10:39:30
【问题描述】:
我有多个具有相同设计的表单,例如:
In Form1{
Form2 = new Formtoopen();
Form2.Resize += new EventHandler(Form2_Resize);
Form2.FormClosing +=new FormClosingEventHandler(Form2_FormClosing);
}
然后是事件:
In Form1{
protected virtual void Fly_Form2_Closing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
Fly_Form2.Hide();
}
}
protected virtual void Fly_Form2_Visiblechanged(object sender, EventArgs e)
{
//some code
}
}
我想在现在为空的 EventArgs 中添加 Form2 类型。 我认为这会使我的代码更简单,因为我有多个表单共享相同的代码。
我怎么能这样做?我考虑了事件自定义参数的方式,但我不确定 Type...
你能帮帮我吗?
谢谢
【问题讨论】:
-
为什么要在其中包含类型。由于事件是由表单本身触发的,所以
this.Hide()应该做你想做的事。或者更确切地说,由于表单是发送者将其转换为表单类型,然后将其隐藏。 -
你好,因为当我这样做时。隐藏它会将 Form1 隐藏在我的 Form2 后面。代码在 Form1 中,我从中打开所有表单并从 Form1 处理它们。所以当我调用 this.Hide 时我在 Form1 中,它隐藏了 Form1 而不是我看到的表单......
-
银盘上交给你:((Form)sender).Hide();
标签: c# events types custom-events