[英]A single click-event for many buttons
I have a WPF Window with many buttons (btn_1, btn_2, btn_3 ... btn_81) and instead to create a click-event for each button like this: 我有一个带有许多按钮(btn_1,btn_2,btn_3 ... btn_81)的WPF窗口,而是为每个按钮创建一个点击事件,如下所示:
private void btn_1_Click(object sender, RoutedEventArgs e)
{
if (backColor != null)
btn_1.Background = backColor;
}
private void btn_2_Click(object sender, RoutedEventArgs e)
{
if (backColor != null)
btn_2.Background = backColor;
}
I meant to create only one click-event and get somehow the name of the button I clicked to perform the action. 我的意思是只创建一个单击事件,并以某种方式获得我单击以执行操作的按钮的名称。 The action performed with the click-event is for each button the same: they must change their background. 对于每个按钮,单击事件执行的操作是相同的:它们必须更改背景。
I hope I could explain my issue. 我希望我能解释我的问题。 TIA! TIA!
In your XAML you can bind the buttons click events to the same handler: 在您的XAML中,您可以将按钮click事件绑定到同一处理程序:
<StackPanel>
<Button Content="btn1" x:Name="btn1" Click="btn_Click"></Button>
<Button Content="btn2" x:Name="btn2" Click="btn_Click"></Button>
<Button Content="btn3" x:Name="btn3" Click="btn_Click"></Button>
</StackPanel>
And the code behind: 以及后面的代码:
Brush backColor = new SolidColorBrush(Colors.Red);
private void btn_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
if (btn != null && backColor != null)
btn.Background = backColor;
}
Just add same event to each button. 只需将相同事件添加到每个按钮。 In your case add btn_1_Click
. 在您的情况下,添加btn_1_Click
。 You can do that like: 您可以这样做:
btn1.Click += btn1_Click;
btn2.Click += btn1_Click;
btn3.Click += btn1_Click;
...
or 要么
btn1.Click += new EventHandler(btn1_Click);
btn2.Click += new EventHandler(btn1_Click);
btn3.Click += new EventHandler(btn1_Click);
...
private void btn1_Click(object sender, RoutedEventArgs e)
{
// do something
}
you can do 你可以做
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
if (Equals(sender, bt1))
{
}
else if(Equals(sender, bt2))
{
}
}
xaml a
<Button Content="Button 1" Name="bt1" Click="ButtonBase_OnClick"/>
<Button Content="Button 2" Name="bt2" Click="ButtonBase_OnClick"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.