/****************************** * 说明:自定义菜单 * 创建人:龚宇超 * 创建日期:2017-08-16 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Business.Impl; using Lskj.Control; using Lskj.Main3.Properties; namespace Lskj.Main3.Control { /// /// 自定义菜单 /// public partial class MenuBar2 : UserControl { /// /// 默认选中菜单 /// private static Button defaultButton; private ButtonHoverEventHandler hoverEvent; public delegate void ButtonHoverEventHandler(Button before, Button after); public MenuBar2() { InitializeComponent(); } /// /// 说明:获取菜单按钮 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// Button. public Button GetButton() { return this.btnDesktop; } /// /// 说明:设置默认选中的Button /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The item. public void SetDefaultSelectMenu(MenuBar2 item) { defaultButton = item.btnDesktop; } /// /// 说明:设置菜单状态状态 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The state. public void SetButtonState(MenuButtonState state) { switch (state) { case MenuButtonState.defaultState: this.btnDesktop.BackgroundImage = Resources.left_default; break; case MenuButtonState.selectState: this.btnDesktop.BackgroundImage = Resources.left_select; break; } } /// /// 说明:注册鼠标划过事件 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The hover event. /// Type of the event. public void SetHoverEvent(ButtonHoverEventHandler hoverEvent,MenuEventType eventType) { try { 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; } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:鼠标划过菜单时 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void btnDesktop_MouseMove(object sender, MouseEventArgs e) { try { this.Cursor = Cursors.Hand; } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:切换菜单 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. private void btnDesktio_MouseEvent(object sender, MouseEventArgs e) { try { Button button = sender as Button; if (button != null) { if (defaultButton != null) defaultButton.BackgroundImage = Resources.left_default; button.BackgroundImage = Resources.left_select; } if (defaultButton != button) { if (hoverEvent != null) { this.hoverEvent(defaultButton, button); } defaultButton = button; } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } } /// /// 菜单状态 /// //public enum MenuButtonState //{ // defaultState, // selectState //} ///// ///// 菜单事件 ///// //public enum MenuEventType //{ // MouseHoverEvent = 0, // MouseClickEvent = 1 //} }