将按钮名称传递给点击事件

时间:2013-08-05 00:45:49

标签: c# wpf

我正在生成一些具有相似或相同内容的按钮,并希望使用它们的名称来区分它们。由于程序正在动态创建按钮,我无法为它们创建单独的事件,而是需要能够获取名称以便能够知道触发事件的按钮。

有没有办法将按钮名称传递给它启动的点击事件?发件人对象似乎包含内容但不包含名称。

这是一个类似的事件:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        //getname of button
        Canvas.Children.Remove(//name of button\\)
    }

3 个答案:

答案 0 :(得分:6)

据我所知,WPF甚至没有自动为Name属性分配任何内容 - 这只是供开发人员分配,所以我们可以引用该控件。

但是,你应该能够将发送者传递给remove方法,因为它接受了一个派生自Button的UIElement参数。

Canvas.Children.Remove((Button)sender);

答案 1 :(得分:5)

我不熟悉WPF。如果这个答案似乎是一个垃圾,我会删除它。

在ASP.Net中,我们可以转换为按钮来获取发件人的信息。像这样的东西 -

private void Button_Click(object sender, RoutedEventArgs e)
{
    var button = sender as Button;
    button.Name
}

答案 2 :(得分:0)

或许获得控件的名称对您有用

private void button1_Click(object sender, RoutedEventArgs e)
{
  Control control = (Control)sender;
  Canvas.Children.Remove(control.Name);
}