将按钮的名称传递给单击事件

本文关键字:单击 事件 按钮 | 更新日期: 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);
}