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

如果上部 mthode 成功,则对象必须是按钮(将发件人转换为按钮 -> 必须是按钮)但是现在我遇到了处理标签的问题。有人可以帮助我吗?我在互联网上找不到任何东西,如果这是一个愚蠢的问题,我很抱歉,但我是 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 回答