120 lines
3.4 KiB
C#
120 lines
3.4 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 菜单按钮
|
|
/// </summary>
|
|
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();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置默认选中的Button
|
|
/// </summary>
|
|
public void SetDefaultSelectMenu(Menu_Item_Button item)
|
|
{
|
|
defaultButton = item.btnDesktop;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置按钮状态
|
|
/// </summary>
|
|
/// <param name="state"></param>
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册设置事件
|
|
/// </summary>
|
|
/// <param name="hoverEvent"></param>
|
|
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;
|
|
}
|
|
/// <summary>
|
|
/// 切换菜单
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
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
|
|
}
|
|
}
|