我有一个带有6个按钮的表单。这些按钮用于增加/减少相应文本框的值。现在我正试图“动画”按钮。我想在鼠标悬停在按钮上时对按钮产生另一种效果。
要做到这一点,我在参考资料中有两个不同的图像,我正在执行此代码:
private void btnHoursDown_MouseHover(object sender, EventArgs e) {
btnHoursDown.Image = Game_Helper.Properties.Resources.DownHover;
}
private void btnHoursDown_MouseLeave(object sender, EventArgs e) {
btnHoursDown.Image = Game_Helper.Properties.Resources.Down;
}
这很好用。我的问题是:创建一个类(ButtonBehaviour.cs)并将此代码放在该类中是不明智的吗?
所以我会有这样的事情:
ButtonBehaviour buttonBehaviour = new ButtonBehaviour();
private void btnHoursDown_MouseHover(object sender, EventArgs e) {
buttonBehaviour.buttonDownHover();
}
private void btnHoursDown_MouseLeave(object sender, EventArgs e) {
buttonBehaviour.buttonDownLeave();
}
课程应该是:
public class ButtonBehaviour {
public void buttonDownHover() {
// code
}
public void buttonDownLeave() {
// code
}
}
如何创建此类行为并使按钮适应此行为?
答案 0 :(得分:2)
如果应对所有按钮应用一个效果,请尝试向它们添加相同的事件处理程序
private void btn_MouseHover(object sender, EventArgs e)
{
(sender as Button).Image = Game_Helper.Properties.Resources.DownHover;
}
private void btn_MouseLeave(object sender, EventArgs e)
{
(sender as Button).Image = Game_Helper.Properties.Resources.Down;
}
通过sender
变量可以获得引发事件的按钮
这样就可以避免每个按钮的代码重复。创建ButtonBehaviour
或CustomButton
可能是一种过度工程,除非您需要多种形式