1

ユーザーを追加/編集するデスクトップ アプリケーションを作成しています。どちらの関数も同じ入力を使用しますが、データを更新して新しいデータをデータベースに挿入するには、各関数で異なるクリック ハンドラーが必要になりますが、同じボタンを使用したい

同じボタンに異なるクリックハンドラーを割り当てる方法はありますか?

4

2 に答える 2

0

私が思いついた解決策は次のとおりです。

public void displayEditButtons()
{
    buttonPeopleOne.Text = "Save Changes";
    this.buttonPeopleOne.Click -= new System.EventHandler(this.buttonPeopleOneClear_Click);
    this.buttonPeopleOne.Click += new System.EventHandler(this.buttonPeopleOneSave_Click);

        buttonPeopleTwo.Text = "Delete User";
        this.buttonPeopleTwo.Click -= new System.EventHandler(this.buttonPeopleTwoNext_Click);
        this.buttonPeopleTwo.Click += new System.EventHandler(this.buttonPeopleTwoDelete_Click);

        //change other controls to match the function context
        buttonPeopleChangeFunction.Visible = true;
        this.labelPeopleFunctionHeader.Text = "Edit Current User";
    }

    public void displayAddButtons()
    {
        buttonPeopleOne.Text = "Clear";
        this.buttonPeopleOne.Click -= new System.EventHandler(this.buttonPeopleOneSave_Click);
        this.buttonPeopleOne.Click += new System.EventHandler(this.buttonPeopleOneClear_Click);


        buttonPeopleTwo.Text = "Add Contact";
        this.buttonPeopleTwo.Click -= new System.EventHandler(this.buttonPeopleTwoDelete_Click);
        this.buttonPeopleTwo.Click += new System.EventHandler(this.buttonPeopleTwoNext_Click);

        //change other controls to match the function context
        buttonPeopleChangeFunction.Visible = false;
        this.labelPeopleFunctionHeader.Text = "Add New User";

}

ボタンを変更する必要がある場合は、さまざまなメソッドを呼び出すだけです

于 2013-10-17T09:14:08.020 に答える
0

はい、できます。

//Register both handlers within constructor
button1.Click += new EventHandler(InsertOperationHandler);
button1.Click += new EventHandler(UpdateOperationHandler);

-

private void InsertOperationHandler(object sender, EventArgs e)
{

}


private void UpdateOperationHandler(object sender, EventArgs e)
{

}
于 2013-10-16T09:21:27.887 に答える