在打开窗体之前要执行的全局函数

本文关键字:执行 全局 函数 开窗 窗体 | 更新日期: 2023-09-27 17:50:44

我有大约15个表单,每个表单都包含一些类似的代码。

我想知道的是,当窗体打开时,是否有任何方法可以自动调用包含该特定代码段的函数?

比如,假设我想在每次加载任何形式的项目时显示Hello World消息。

所以我能做的是,我可以创建一个模块或类文件,我可以添加一段代码,我可以用各种形式调用它

但我不想,我想的是,有没有任何方法可以添加这段代码,并在加载表单时自动填充/触发它。

也许我们可以称之为表单的自动调用函数

比如,每当一个窗体自动打开时,就会调用一个类或函数,而不在特定的窗体中定义它。也许是一个库,当窗体加载时,它会被调用,我可以在那里添加我的代码,然后它就会被执行。

在打开窗体之前要执行的全局函数

创建自己的基类,继承自表单:

public abstract class FormBase : Form { /*...*/ }

然后,您使用的每个表单都可能继承自这个基类:

public class MyForm : FormBase { /*...*/ }    

您可以在表单中添加一个事件处理程序,并在其中放入需要运行的任何代码。

例如:

this.Load += new System.EventHandler(this.FormName_Load);
public class frm_Base : Form
{
  public void frm_Base()
  {
    this.Load += new System.EventHandler(this.frm_Base_Load);
  }
  public void frm_Base_Load(object sender, EventArgs e)
  {
    OnFormLoad();
  }
  public virtual OnFormLoad()
  {
    MessageBox.Show("Hello World");
  }
}
public class frm_Derived : frm_Base
{
  public override OnFormLoad()
  {
    base.OnFormLoad();
    MessageBox.Show("Another Hello From Derived");
  }
}

现在,您可以继承所有其他表单中加载时发生的功能,也可以通过使加载方法虚拟化来做其他事情。