每次显示表单时如何执行代码?

时间:2019-11-18 16:40:26

标签: c# winforms

每次尝试显示表单时,我都试图执行代码,但是方法“ Load”和“ Shown”仅执行一次代码,当我隐藏此表单并再次显示时,它不执行。 / p>

目前,我正在使用表单(由我创建)中的另一种方法,在显示表单之前和创建类的新实例之后,每次都会调用该方法:

ProductPage productPage = null;
if (productPage == null)
{
    productPage = NewProductPage;
}

//this is the method that I created to execute the code everytime
productPage.construct();
productPage.Show();

但是我想知道是否有任何默认方法(例如“ Load”和“ Shown”)在每次使用form.show();表单显示时都执行其代码。

1 个答案:

答案 0 :(得分:3)

有一个称为Shown的事件,该事件在Show调用后触发。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.shown?view=netframework-4.8

有另一个被激活时被调用 我想这就是你想要的

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.activated?view=netframework-4.8

控件上也有VisibleChanged。

全部记录在这里:

https://docs.microsoft.com/en-us/dotnet/framework/winforms/order-of-events-in-windows-forms?view=netframework-4.8

这包括页面底部表单的焦点和验证事件。