将按钮的名称传递给单击事件
本文关键字:单击 事件 按钮 | 更新日期: 2023-09-27 18:26:28
我正在生成许多内容相似或相同的按钮,并希望使用它们的名称来区分它们。由于程序是动态创建按钮的,我无法为所有按钮创建单独的事件,而是需要能够获取名称才能知道是哪个按钮触发了事件。
有没有办法将按钮的名称传递到它启动的点击事件?sender对象似乎包含内容,但不包含名称。
这是为这样的事件:
private void Button_Click(object sender, RoutedEventArgs e)
{
//getname of button
Canvas.Children.Remove(//name of button'')
}
据我所知,WPF甚至不会自动为Name
属性分配任何内容——这只是供开发人员分配的,以便我们可以引用控件。
但是,您应该能够将sender传递给remove方法,因为它接受Button派生的UIElement参数。
Canvas.Children.Remove((Button)sender);
我不熟悉WPF。如果这个答案看起来是垃圾,我会删除它
在ASP.Net中,我们可以转换到一个按钮来获取发件人的信息。类似这样的东西-
private void Button_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
button.Name
}
也许获取控件的名称对有用
private void button1_Click(object sender, RoutedEventArgs e)
{
Control control = (Control)sender;
Canvas.Children.Remove(control.Name);
}