繁体   English   中英

Visual Studio c#.net中的重载按钮

[英]overloading button in visual studio c#.net

我有一个54个平面样式为Flat的按钮,并且我在鼠标悬停时手动设计了每个按钮图像,并且w / c鼠标离开的按钮都具有相同的设计。 与做mousehover和mouseleave每个按钮的代码相比,我应该做些什么来使其变得更容易。

由于您尚未指定,所以我假设使用winforms。

因此,您有54个按钮,并且您大概手动编码了108种方法(54个用于鼠标输入,而54个用于鼠标离开)

您可以做的是创建一个对象来保存button-> image信息,并将其全部存储在字典中。 通过按钮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
     }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM