我有一个小问题。我正在开发一个在线座位预订系统,允许用户点击并选择座位。我正在使用座椅按钮。我正在为所有按钮编写按钮单击事件的方法。我需要知道如何识别按钮的ID,用户点击。提前谢谢。
答案 0 :(得分:30)
使用按钮点击事件时,处理事件的方法的签名如下:
protected void foo (object sender, EventArgs e)
在这种情况下, sender
是单击的按钮。只需将它再次投射到Button,就可以了。像这样:
Button button = (Button)sender;
string buttonId = button.ID;
您可以让所有按钮将Click
事件指向与此相同的方法。
答案 1 :(得分:5)
事件处理程序的第一个参数(object source
或有时object sender
)是对单击按钮的引用。您需要做的只是强制转换,然后您可以检索id值,例如:
void Button_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
//get the id here
}
}
答案 2 :(得分:1)
我认为还有另一种方法来做这种方法,你可能没有想到它, 为什么不放一个
图像控制
你只需要为这种方法切换图像的颜色,第一个我们假设它是红色,它意味着免费座位,第二个是蓝色,表示采取。
以下是您可能需要了解的有关此问题的链接How to change color of Image at runtime
希望我能给你一个更好的主意。谢谢
答案 3 :(得分:0)
我知道这是一个老话题,但希望它可以帮助某人在那里遇到与我在2019年在这里遇到的同样的麻烦!这是我的解决方案,将按钮的Tag属性与通过XAML绑定一起使用。即使对我来说有点棘手,但对我来说效果很好:
在您的按钮单击事件中:
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}" />