[英]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.