15

我有一个小问题。我正在开发一个在线座位预订系统,允许用户单击并选择座位。我正在使用座位按钮。我正在为所有按钮的按钮单击事件编写一个方法。我需要知道如何识别用户点击的按钮的 id。提前致谢。

4

4 回答 4

38

当您使用按钮单击事件时,处理该事件的方法的签名如下所示:

protected void foo (object sender, EventArgs e)

sender在这种情况下是被点击的按钮。只需再次将其投射到 Button 即可。像这样:

Button button = (Button)sender;
string buttonId = button.ID;

您可以让所有按钮将它们的Click事件指向相同的方法,就像这样。

于 2013-07-10T14:47:43.793 回答
6

事件处理程序的第一个参数(object source或有时object sender)是对被单击按钮的引用。您需要做的就是转换它,然后您可以检索 id 值,例如:

void Button_Click(object sender, EventArgs e)
{
    Button button = sender as Button;
    if (button != null)
    {
       //get the id here
    }
}
于 2013-07-10T14:48:18.470 回答
1

我认为还有另一种方法可以做到这一点,你可能没有想到,你为什么不放一个

图像控制

这个方法只需要切换图片的颜色,第一个我们假设是红色的,意思是空位,第二个是蓝色,意思是被占用

这是您可能需要了解的有关此问题的链接如何在运行时更改图像的颜色

希望我能给你一个更好的主意。谢谢你

于 2013-07-10T15:01:48.850 回答
0

我知道这是一个旧线程,但希望它可以帮助那些遇到我在 2019 年遇到同样麻烦的人!这是我使用通过 XAML 绑定的按钮的 Tag 属性的解决方案。对我来说效果很好,即使它可能有点笨拙:

在您的按钮单击事件中:

private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button EditButton = (Button)e.Source;
            int id = Convert.ToInt32(EditButton.Tag);

            //do your stuff
        }

在您的 XAML 中:

<Button Click="Button_Click" Content="Edit" Tag="{Binding whateverInt}" />
于 2019-09-14T04:58:04.493 回答