BringToFront()方法触发了哪些事件?

时间:2012-12-28 03:02:14

标签: c# .net winforms event-handling

我有两个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上创建一个公共方法并调用它。

3 个答案:

答案 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
    }
}