参考链接:https://blog.csdn.net/blademainer/article/details/8560605
当前示例是使用自定义控件,继承UserControl
鼠标进入控件区域改变背景颜色,离开控件区域更改回来
public partial class MyButton : UserControl{private Color saveColor = Color.WhiteSmoke;public MyButton(){InitializeComponent();}/// <summary>/// 重写OnControlAdded方法,为每个子控件添加MouseEnter和MouseLeave事件/// </summary>/// <param name="e"></param>protected override void OnControlAdded(ControlEventArgs e){Control control = e.Control; // 获取添加的子控件control.MouseEnter += this.MyButton_MouseEnter;//为子控件注册鼠标进入控件事件control.MouseLeave += this.MyButton_MouseLeave;//为子控件注册鼠标离开控件事件base.OnControlAdded(e);}/// <summary>/// 鼠标进入控件可视部分/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void MyButton_MouseEnter(object sender, EventArgs e){this.BackColor = Color.FromArgb(204, 232, 207);}/// <summary>/// 鼠标离开控件可视部分/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void MyButton_MouseLeave(object sender, EventArgs e){//鼠标离开当前工作区域(控件区域)?if (!this.RectangleToScreen(this.ClientRectangle).Contains(Control.MousePosition)){this.BackColor = Color.WhiteSmoke;}}}
