using Lskj.Business.Impl; using Lskj.Control; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Lskj.Main3.Control { public partial class NewMenuBar : UserControl { public NewMenuBar() { InitializeComponent(); this.panelImg.BackgroundImageLayout = ImageLayout.Stretch;//设置背景图片自动适应 } private PanelHoverEventHandler hoverEvent; public delegate void PanelHoverEventHandler(NewMenuBar before, NewMenuBar after); private static NewMenuBar defaultMenuBar; /// /// 说明:获取主体panel /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// Button. public NewMenuBar GetNewMenuBar() { return this; } /// /// 说明:设置默认选中的Panel /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The item. public void SetDefaultSelectMenu(NewMenuBar item) { defaultMenuBar = item; } /// /// 说明:设置菜单状态状态 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The state. public void SetButtonState(MenuButtonState state) { switch (state) { case MenuButtonState.defaultState: this.labelTitle.BackColor = Color.White; this.labelTitle.ForeColor = Color.FromArgb(151, 162, 194); break; case MenuButtonState.selectState: this.labelTitle.BackColor = Color.FromArgb(0, 131, 232); this.labelTitle.ForeColor = Color.FromArgb(195, 219, 255); break; } } /// /// 说明:注册鼠标划过事件 /// 创建人:龚宇超 /// 创建日期:2017-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The hover event. /// Type of the event. public void SetHoverEvent(PanelHoverEventHandler hoverEvent, MenuEventType eventType) { try { this.hoverEvent = hoverEvent; switch (eventType) { case MenuEventType.MouseClickEvent: //this.btn_item_title.MouseMove += new MouseEventHandler(btnDesktop_MouseMove); //this.btn_item_title.MouseClick += new MouseEventHandler(this.btnDesktio_MouseEvent); this.panelImg.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); this.labelTitle.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); this.panel1.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); this.panelImg.MouseClick += new MouseEventHandler(this.btnDesktio_MouseEvent); this.labelTitle.MouseClick += new MouseEventHandler(this.btnDesktio_MouseEvent); this.panel1.MouseClick += new MouseEventHandler(this.btnDesktio_MouseEvent); break; case MenuEventType.MouseHoverEvent: default: this.panelImg.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); this.labelTitle.MouseMove += new MouseEventHandler(this.btnDesktio_MouseEvent); this.panel1.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 { NewMenuBar item = null; if (sender is Panel) { item = (sender as Panel).Parent.Parent as NewMenuBar; if (item == null) { item = (sender as Panel).Parent.Parent.Parent as NewMenuBar; } } if (sender is Label) { item = (sender as Label).Parent.Parent as NewMenuBar; } if (item != null) { if (defaultMenuBar != null) { defaultMenuBar.labelTitle.BackColor = Color.White; defaultMenuBar.panel1.BackColor = Color.White; defaultMenuBar.labelTitle.ForeColor = Color.FromArgb(151, 162, 194); } item.labelTitle.BackColor = Color.FromArgb(0, 131, 232); item.panel1.BackColor = Color.FromArgb(0, 131, 232); item.labelTitle.ForeColor = Color.FromArgb(195, 219, 255); } if (defaultMenuBar != item) { if (hoverEvent != null) { this.hoverEvent(defaultMenuBar, item); } defaultMenuBar = item; } } 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 } }