0

ここ: http://msdn.microsoft.com/en-us/library/hkkb40tf(v=VS.90).aspx、別のボタンからボタンのクリックイベントを呼び出すには、これを実行できる/実行する必要があると書かれています仕方:

button1.PerformClick();

ただし、私の状況 (VS 2003.NET 1.1) では、これはコンパイルされません (確かに、上記のリンクは VS 2008 を指定していますが、msdn がよく行うように、以前のバージョンの関連情報へのリンクはありません)。

これはコンパイルされます:

private void btnPrint_Click(object sender, System.EventArgs args)
{
    if (this.recordChanged)
    {
        //btnSave.Click();
        btnSave_Click(sender, args);
    }
    . . .

...しかし、それがその方法かどうかはわかりません。

4

2 に答える 2

6

実行したいビジネス ロジックを別のメソッド (DoSave() など) に配置すると、イベント ハンドラは、互いに直接呼び出すのではなく、その内部メソッドを呼び出すだけで済みます。

イベントハンドラーメソッドを直接呼び出すことによる「偽装」イベントは醜く、バグにつながる可能性があります (将来イベントハンドラーを変更するプログラマーは、予想/文書化されたものとは異なる条件下で呼び出される可能性があることに気付かない可能性があります。これにより、印刷オプションが保存操作をしようとすると、奇妙な動作をしたり、クラッシュすることさえあります)

また、将来的に別の場所から保存操作を実行する可能性も十分にあります。そのため、ビジネス ロジックを、それをアクティブ化する使用インターフェイスから分離しておくことを常にお勧めします。

于 2013-02-20T18:58:13.283 に答える
0

私はしますbtnSave.Click(sender, args);。これがMSDNのページです:http://msdn.microsoft.com/en-us/library/aa645739 (v = VS.71).aspx

于 2013-02-20T18:55:37.520 に答える