如何投射按钮

时间:2012-10-09 08:47:21

标签: c# casting

我对铸造按钮的理解有些问题,也许你可以帮助我。如果我有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)
{

}

如果我给evry按钮一个标签,我可以询问按钮是否被点击了,对吗?

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;
            }
    }
}

如果上面的mthode是成功的,那么对象必须是一个按钮(将按钮发送到按钮 - >必须是一个按钮)但是现在我有问题来解决标签问题。有人能帮助我吗?我在互联网上找不到什么,如果这是一个愚蠢的问题我很抱歉,但我是c#的新手。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用Id property

Button myButton = (Button)sender;
if(myButton.Id == "button1")
{
  ....
}
elseif(myButton.Id == "button2")
{
   .....
}

答案 1 :(得分:0)

var test = myButton.Tag as string;

您无法打开对象。

答案 2 :(得分:0)

您不需要“Tag”属性吗?

您可以直接检查Button对象。

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

这假设按钮是设计时创建的,按钮字段名为“button1”,“button2”等。