如何将相同的功能调用到几个按钮c#

时间:2017-12-12 09:27:58

标签: c#

有人可以给我一个与this最佳答案相关的“编辑2”的例子。

不幸的是,我没有足够的声誉在推介页面上发布问题。

THX

2 个答案:

答案 0 :(得分:2)

正如您指出的问题,如果您想通过多个按钮调用mouseenter,您可以按照以下方式执行操作

private void btn_MouseEnter(object sender, EventArgs e)
{
   Button btn = sender as Button;
   if(btn !=null)
   {
    btn.UseVisualStyleBackColor = false;
    btn.BackColor = Color.Black;
    btn .ForeColor = Color.White;
   }
}

如果要为每个按钮鼠标输入多次调用相同的功能,则应将相同的功能分配给多个按钮鼠标输入事件处理程序。

示例:

  Button1.MouseEnter += new EventHandler(this.btn_MouseEnter);
  Button2.MouseEnter += new EventHandler(this.btn_MouseEnter);

答案 1 :(得分:0)

根据您的链接定义方法并调用每个按钮以显示MouseOver效果不是一个好主意, 而是将样式定义为Xaml中的资源,并将其用于任何您想要的按钮。

示例:

<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green"/>
<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type Button}">
            <Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1">
                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
            </Border>
        </ControlTemplate>
    </Setter.Value>
</Setter>
<Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="Background" Value="Red"/>
    </Trigger>
</Style.Triggers>