Visual Studio C#.NET 中的重载按钮

本文关键字:重载 按钮 NET Studio Visual | 更新日期: 2023-09-27 18:30:54

我有一个 54 个按钮,平面样式 = 平面,我手动设计了每个按钮,在鼠标悬停和鼠标离开时都有一个图像,它们都具有相同的设计。我应该怎么做才能让它比执行鼠标悬停和鼠标离开每个按钮的代码更容易。

Visual Studio C#.NET 中的重载按钮

由于您尚未指定,我将假设 winforms。

所以你有54个

按钮,你已经手动编码了大概108个方法(54个用于鼠标输入,54个用于鼠标离开)

您可以做的是创建一个对象来保存按钮>图像信息,并将其全部存储在字典中。通过按钮 ID 键入它,即

public class ButtonImageInfo 
{  
     public string ButtonId {get;set;}
     public string MouseEnterImage {get;set;}
     public string MouseLeaveImage {get;set;}
}
// ...
public Dictionary<string, ButtonImageInfo> _dict = new ...
_dict.Add("Button1", new ButtonImageInfo ("Button1", "Image1Enter", "Image1Leave"));
///    ... etc...

这将允许您编写一个OnMouseEnter和一个OnMouseLeave方法,并将它们应用于每个按钮。

然后,您只需根据发件人 ID 获取正确的图像。

private void MouseLeaveEvent(object sender, EventArgs e)
  {
     Button b = sender as Button;
     if(b != null)
     { 
          string id = b.Id;
          //Do Something with _dict[id].MouseLeaveImage
     }
  }
  private void MouseEnterEvent(object sender, EventArgs e)
  {
     Button b = sender as Button;
     if(b != null)
     { 
          string id = b.Id;
          //Do Something with _dict[id].MouseEnterImage
     }
  }