0

約 15 のフォームがあり、すべてのフォームに同様のコードが含まれています。

私が知りたいのは、フォームが開いているときにその特定のコードを含む関数を自動的に呼び出す方法があるということです?

Hello World同様に、プロジェクトのフォームがロードされるたびにメッセージを表示したいとしましょう。

だから私ができることは、モジュールまたはクラスファイルを作成し、それらのコードを追加して、それをあらゆる形式で呼び出すことができるということです。

しかし、これは私が望んでいないことです。私が望むのは、このコードを追加して、フォームが読み込まれたときに自動的に入力/トリガーされる方法があるということです。

多分私たちはそれを次のように呼ぶことができます-フォームの自動呼び出し機能

同様に、フォームが自動的に開くときはいつでも、特定のフォームで定義せずにクラスまたは関数が呼び出されます。たぶん、フォームがロードされたときにとにかく呼び出されるライブラリのようなもので、そこにコードを追加して実行することができます。

4

3 に答える 3

3

フォームから継承する独自の基本クラスを作成します。

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

次に、使用しているすべてのフォームは、この基本クラスから継承できます。

public class MyForm : FormBase { /*...*/ }    
于 2013-01-04T11:15:06.577 に答える
0

フォームにイベント ハンドラーを追加し、そこに実行する必要のあるコードを配置できます。

例えば:

this.Load += new System.EventHandler(this.FormName_Load);
于 2013-01-04T11:14:46.893 に答える
0
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");
  }
}

ロード メソッドを仮想化することで、ロード時に発生する機能を他のすべてのフォームで継承したり、他のことを実行したりできるようになりました。

于 2013-01-04T11:18:50.773 に答える