Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多个按钮的单击事件_C#_Wpf - Fatal编程技术网

C# 多个按钮的单击事件

C# 多个按钮的单击事件,c#,wpf,C#,Wpf,我有一个WPF窗口,其中有许多按钮(btn_1、btn_2、btn_3…btn_81),而是为每个按钮创建一个单击事件,如下所示: private void btn_1_Click(object sender, RoutedEventArgs e) { if (backColor != null) btn_1.Background = backColor; } private void btn_2_Click(object sender, RoutedEventArgs

我有一个WPF窗口,其中有许多按钮(btn_1、btn_2、btn_3…btn_81),而是为每个按钮创建一个单击事件,如下所示:

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;
}
我的意思是只创建一个单击事件,并以某种方式获得我单击以执行操作的按钮的名称。单击事件对每个按钮执行的操作都是相同的:它们必须更改背景

我希望我能解释我的问题。
蒂亚

只需向每个按钮添加相同的事件即可。在您的情况下,添加
btn\u 1\u单击
。你可以这样做:

btn1.Click += btn1_Click;
btn2.Click += btn1_Click;
btn3.Click += btn1_Click;
...


只需将相同的事件添加到每个按钮。在您的情况下,添加
btn\u 1\u单击
。你可以这样做:

btn1.Click += btn1_Click;
btn2.Click += btn1_Click;
btn3.Click += btn1_Click;
...

你能行

   private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        if (Equals(sender, bt1))
        {

        }
        else if(Equals(sender, bt2))
        {

        }
    }
xaml

<Button Content="Button 1" Name="bt1" Click="ButtonBase_OnClick"/>
<Button Content="Button 2" Name="bt2" Click="ButtonBase_OnClick"/>

您可以这样做

   private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        if (Equals(sender, bt1))
        {

        }
        else if(Equals(sender, bt2))
        {

        }
    }
xaml

<Button Content="Button 1" Name="bt1" Click="ButtonBase_OnClick"/>
<Button Content="Button 2" Name="bt2" Click="ButtonBase_OnClick"/>

在XAML中,可以将按钮单击事件绑定到同一个处理程序:

    <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>

在XAML中,可以将按钮单击事件绑定到同一个处理程序:

    <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>

找到一种动态创建81个按钮的方法。
objectsender
下面的答案都是正确的,但这种方法感觉很笨拙。您应该查看或使用特定于案例的方法动态创建这些按钮(最有可能是将itemsControl(a)绑定到集合)适当型号的。如果您能提供更多关于您的程序的详细信息,我可以告诉您如何操作。找到一种方法来动态创建81个按钮。
object sender
下面的答案都是正确的,但这种方法感觉很笨拙。您应该查看或使用特定于具体情况的方法来动态创建这些按钮(最有可能是itemsControl(a)绑定到适当模型的集合。如果您能提供更多关于您的程序的详细信息,我可以告诉您如何操作。我还将在“cast”之后检查
btn
是否为null。我还将在“cast”之后检查
btn
是否为null