我有 54 个按钮,平面样式 = 平面,我手动设计了每个按钮,在鼠标悬停和鼠标离开 w/c 时都有图像,它们都具有相同的设计。我应该怎么做才能使它比执行 mousehover 和 mouseleave 每个按钮的代码更容易。
问问题
315 次
1 回答
1
由于您尚未指定,因此我将假设为 winforms。
所以你有 54 个按钮,你手动编写了大概 108 个方法(54 个用于鼠标输入,54 个用于鼠标离开)
您可以做的是创建一个对象来保存按钮->图像信息,并将其全部存储在字典中。通过按钮 ID 键入它。IE
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
}
}
于 2013-09-11T15:45:10.823 回答