using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Lskj.Main.Properties; namespace Lskj.Main { /// /// 菜单按钮 /// public partial class Menu_Item_Button : UserControl { private static Button defaultButton; private ButtonHoverEventHandler hoverEvent; public delegate void ButtonHoverEventHandler(Button before, Button after); public Menu_Item_Button() { InitializeComponent(); } /// /// 设置默认选中的Button /// public void SetDefaultSelectMenu(Menu_Item_Button item) { defaultButton = item.btnDesktop; } /// /// 设置按钮状态 /// /// public void SetButtonState(MenuButtonState state) { switch (state) { case MenuButtonState.defaultState: this.btnDesktop.BackgroundImage = null; break; case MenuButtonState.selectState: this.btnDesktop.BackgroundImage = Resources.left_default_xj; break; } } /// /// 注册设置事件 /// /// public void SetHoverEvent(ButtonHoverEventHandler hoverEvent,MenuEventType eventType) { this.hoverEvent = hoverEvent; switch (eventType) { case MenuEventType.MouseClickEvent: this.btnDesktop.MouseMove += new MouseEventHandler(btnDesktop_MouseMove); this.btnDesktop.MouseClick += new MouseEventHandler(this.btnDesktio_MouseEvent); break; case MenuEventType.MouseHoverEvent: default: this.btnDesktop.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); break; } } public Button GetButton() { return this.btnDesktop; } private void btnDesktop_MouseMove(object sender, MouseEventArgs e) { this.Cursor = Cursors.Hand; } /// /// 切换菜单 /// /// /// private void btnDesktio_MouseEvent(object sender, MouseEventArgs e) { Button button = sender as Button; if (button != null) { if (defaultButton != null) defaultButton.BackgroundImage = null; button.BackgroundImage = Resources.left_default_xj; } if (defaultButton != button) { if (hoverEvent != null) { this.hoverEvent(defaultButton, button); } defaultButton = button; } } } public enum MenuButtonState { defaultState, selectState } public enum MenuEventType { MouseHoverEvent = 0, MouseClickEvent = 1 } }