0

動的に追加される一連のボタンがあります。ユーザーがボタンをクリックし続けると、新しいボタンがウィンドウに追加されます。私はwinformsを使用しています。これらすべてのボタンの onclick イベントを同じ関数にバインドしています。次のコードを使用しています。

System.EventHandler myEventHandle= new System.EventHandler(this.Button_Clicked);

新しい動的ボタンが作成されたら、次のコードを使用してイベント ハンドラーを追加します。

b1.Click += myEventHandle;

関数 Button_Clicked() で、このイベントを呼び出したボタンを取得したいと思います。このボタンを無効にして再度クリックできないようにしたいのですが、ボタン名に応じてさまざまなアクションを実行したいので、クリックされたボタンの名前が必要です。私はC#の初心者です。

これは私がこれまでに試したことですが、うまくいかないようです:

        Button b = sender as System.Windows.Forms.Button;
        b.Font = new Font(b.Font, FontStyle.Bold);
        Console.WriteLine(""+b.Name);
        b.Enabled = false;
4

2 に答える 2

2

さて、あなたのButton_Clickedメソッドは次のように見える必要があります

void Button_Clicked(object sender, EventArgs e) {
  Button clickedButton = (Button)sender;//if sender is always a Button
  clickedButton.Enabled = false;
}
于 2013-09-19T07:42:16.580 に答える