Files
lserp_cs_6.0/插件库/Lskj.Main3/Control/NewMenuBar.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

238 lines
8.3 KiB
C#

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;
/// <summary>
/// <para>说明:获取主体panel</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>Button.</returns>
public NewMenuBar GetNewMenuBar()
{
return this;
}
/// <summary>
/// <para>说明:设置默认选中的Panel</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="item">The item.</param>
public void SetDefaultSelectMenu(NewMenuBar item)
{
defaultMenuBar = item;
}
/// <summary>
/// <para>说明:设置菜单状态状态</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="state">The state.</param>
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;
}
}
/// <summary>
/// <para>说明:注册鼠标划过事件</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="hoverEvent">The hover event.</param>
/// <param name="eventType">Type of the event.</param>
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);
}
}
/// <summary>
/// <para>说明:鼠标划过菜单时</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="MouseEventArgs"/> instance containing the event data.</param>
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);
}
}
/// <summary>
/// <para>说明:切换菜单</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-08-16 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="MouseEventArgs"/> instance containing the event data.</param>
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);
}
}
}
/// <summary>
/// 菜单状态
/// </summary>
public enum MenuButtonState
{
defaultState,
selectState
}
/// <summary>
/// 菜单事件
/// </summary>
public enum MenuEventType
{
MouseHoverEvent = 0,
MouseClickEvent = 1
}
}