2

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

4

3 回答 3

5

好吧,它不会直接触发我所知道的,但由于其 Activation(focus) 被更改,Form.Activated 事件将触发。您可以在此处找到代码文档。这是一个小示例代码:

private void Form1_Activated(object sender, System.EventArgs e)
{
   //What do you want to happen?
}

如果这对您有帮助,请务必将其标记为答案。

于 2012-12-28T03:11:23.217 回答
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();
        }
于 2012-12-28T03:31:32.673 回答
0

它已经是一个较老的问题,但是当我也遇到它时..

只需在表单/控件中添加一个将自身置于前面并从外部调用此方法的方法:

class Form1 : Form
{
    button1_MouseClick()
    {
        instanceOfForm2.ShowInFront();
    }
}

class Form2 : Form
{

    public void ShowInFront()
    {
        this.BringToFront();
        //Do whaterver you want after brought to front
    }
}
于 2021-04-30T16:53:34.903 回答