/******************************
* 说明:自定义菜单
* 创建人:龚宇超
* 创建日期: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.Main4.Properties;
using Lskj.Business.Impl;
using Lskj.Control;
namespace Lskj.Main4.Control
{
///
/// 自定义菜单
///
public partial class MenuBar : UserControl
{
///
/// 默认选中菜单
///
private static Button defaultButton;
private ButtonHoverEventHandler hoverEvent;
public delegate void ButtonHoverEventHandler(Button before, Button after);
public MenuBar()
{
InitializeComponent();
}
///
/// 说明:获取菜单按钮
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// Button.
public Button GetButton()
{
return this.btnDesktop;
}
///
/// 说明:设置默认选中的Button
/// 创建人:龚宇超
/// 创建日期:2017-08-16
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// The item.
public void SetDefaultSelectMenu(MenuBar 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
}
}