-2

いくつかのボタンを動的に追加するコードがあり、これらのボタンには mousedown イベントがあります。ボタンをクリックすると、mousedown関数が呼び出されました。このイベント関数でクリックしたボタンを特定したい。Button.Name プロパティは制限付きの文字列値です。

まさに私はより低いコードが欲しいです。

...
Button btnTest = new Button();
btnTest.identificationvalue="111.";
btnTest.MouseDown+=new MouseButtonEventHandler(deletec);
...
private void deletec(object sender, RoutedEventArgs e)  
{
    string idvalue=((Button)sender).identificationvalue;
    if ( idvalue== "111.")
    {

    }
    else if (idvalue == "110.")
    {

    }
    ...
}
...
4

1 に答える 1

1

あなたの質問の私の解釈に基づいて、各ボタンにはsenderdeletecメソッドでどのボタンが割り当てられているかを判断するために使用できる一意の識別子が必要です。これにはButton.Tag、MSDN リファレンス ページ ( Control.Tag Property ) に記載されているように、「コントロールに関するデータを含むオブジェクトを取得または設定する」プロパティを使用します。(編集:これは、私が最初にこの回答を書いているときに、コメントでウォンヒョンリーによって提案されました。)

別の可能性として、Button.Textプロパティを使用することもできますが、これはアプリケーションのコンテキストによって異なります。

さらに、if-else ステートメントを使用するのではなく、このアプローチを採用する場合は、switch ステートメントを使用する方がクリーンです。つまり、次のようになります。

switch (id)
{
    case 111:
        // do something
        break;
    case 112:
        // do something else
        break;
    ...
}
于 2014-12-21T05:02:22.567 に答える