0

キャストボタンの理解に問題があります。助けてください。たとえば 3 つのボタンがあり、非常に長いコードがない場合は、それらをキャストできますよね? 例えば:

private void button1_Click(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{

}

private void button3_Click(object sender, EventArgs e)
{

}

すべてのボタンにタグを付けると、ボタンがクリックされたかどうかを確認できるはずですよね?

private void MachMalClick(object sender, EventArgs e)
{
    var myButton = (Button)sender;

    if (myButton != null)
    {
        var test = myButton.Tag;
switch (test)
            {
                case 1: MessageBox.Show("button 1 was clicked");
                    break;
                case 2: MessageBox.Show("button 2 was clicked");
                    break;
                case 3: MessageBox.Show("button 3 was clicked");
                    break;
            }
    }
}

上部の方法が成功した場合、オブジェクトはボタンでなければなりません (送信者をボタンにキャスト -> ボタンである必要があります) しかし、タグを処理するのに問題があります。誰か助けてくれませんか?インターネットで何かを見つけられません。これがばかげた質問である場合は申し訳ありませんが、c# は初めてです。

4

3 に答える 3

1

あなたはで試すことができますId property

Button myButton = (Button)sender;
if(myButton.Id == "button1")
{
  ....
}
elseif(myButton.Id == "button2")
{
   .....
}
于 2012-10-09T08:54:04.613 に答える
0
var test = myButton.Tag as string;

オブジェクトをオンにすることはできません。

于 2012-10-09T08:54:32.570 に答える
0

これには「タグ」プロパティは必要ありませんか?

Button オブジェクトを直接チェックできます。

if(sender == button1)
    MessageBox.Show("button 1 was clicked");
else if(sender == button2)
    MessageBox.Show("button 2 was clicked");
else if (...)
    ...

これは、ボタンが設計時に作成され、ボタン フィールドに「button1」、「button2」などの名前が付けられていることを前提としています。

于 2012-10-09T09:00:01.367 に答える