【解決方法】複数のボタンに対する 1 つのイベント

プログラミングQA


複数のボタンに対して 1 つのイベントを作成するにはどうすればよいですか?
33BigLetters と 33SmallLetters のカスタム ロシア語キーボードがあります。
(合計 = 66 文字と各文字の 66 ボタン)
少し前にやったのは知っていますが、今はどこにも見つからず、やり方も覚えていません。

押されたボタンごとに、textbox.text が button.text 値を追加する単一のイベントを作成したいと考えています。
ありがとう。

それは次のようになりますが、私はこれで何か役に立つことはできません:

void MultiBtn_Click(Object sender,
                           EventArgs e)
        {

            Button clickedButton = (Button)sender;
            textBox1.Text += clickedButton.Text;
        }

解決策 2

あなたが持っているコードはあなたが必要としているもののほとんどです。あなたがする必要があるのは、それを各ボタンの Click イベントに追加することだけです。 これは、クリック ドロップダウンを使用してデザイナーで行うか、コードで行うことができます。

C#
myButton1.Click += new EventHandler(MultiBtn_Click);
myButton2.Click += new EventHandler(MultiBtn_Click);
...

ただし、Text プロパティで問題が発生した場合に、文字を格納できる Tag プロパティもあります。

解決策 1

すべての Click イベント ハンドラーがそのイベント ハンドラーを使用するように設定するだけです。 ハンドラー内で、次のようにします。

C#
Button button = sender as Button;
switch (button.Name)
{
    case "button1":
        // do something for button1
        break;
    case "button2":
        // do something for button2
        break;
    // and so on

}

編集 ====================================

なぜこれは 1 票だったのですか? 投稿された質問に対する実行可能な解決策です。

解決策 3

void MultiBtn_Click(オブジェクト送信者、
EventArgs e)
{

Button clickedButton = (Button)sender;
textBox1.Text += clickedButton.Text;
}
これは機能しています。各ボタンのクリック イベントに「MultiBtn_Click」という名前を付けるだけです。

コメント

タイトルとURLをコピーしました