我有两个Form,Form1和Form2,每当我在Form1中调用Form2.BringToFront()时,我想在Form2中做一些事情。
class Form1 : Form
{
button1_MouseClick()
{
Form2.BringToFront();
// trigger an event an do something in Form2
}
}
class Form2 : Form
{
UnknownEvent_EventHandler()
{
//do something
}
}
但BringToFrontMethod上的文档没有说明此方法触发了哪些事件。
注意我不想在Form2上创建一个公共方法并调用它。
答案 0 :(得分:4)
好吧,它不会直接触发我所知道的,但由于其激活(焦点)被更改,Form.Activated事件将触发。您可以找到代码文档here。这是一个小示例代码:
private void Form1_Activated(object sender, System.EventArgs e)
{
//What do you want to happen?
}
如果这有助于您确定将其标记为答案。
答案 1 :(得分:0)
Form2 form2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
form2.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Application.OpenForms["Form2"].BringToFront();
}
答案 2 :(得分:0)
这已经是一个较旧的问题了,但因为我也遇到了它..
只需在您的表单/控件中添加一个方法,将自身置于前端并从外部调用此方法:
class Form1 : Form
{
button1_MouseClick()
{
instanceOfForm2.ShowInFront();
}
}
class Form2 : Form
{
public void ShowInFront()
{
this.BringToFront();
//Do whaterver you want after brought to front
}
}