using System; using System.ComponentModel; using System.Windows.Forms; namespace CompressorXN_ControlLib { /// /// DefaultEvent特性是在引用该自定义控件的控件中双击自定义控件时,自动生成Click方法 /// [DefaultEvent("Click")] public partial class NaviButton : UserControl { public NaviButton() { InitializeComponent(); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.DoubleBuffer, true); this.SetStyle(ControlStyles.ResizeRedraw, true); this.SetStyle(ControlStyles.Selectable, true); this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); } private bool isSelected = false; [Browsable(true)] [Category("自定义属性")] [Description("设置或显示导航按钮是否选中")] public bool IsSelected { get { return isSelected; } set { isSelected = value; UpdateImg(); } } private bool isLeft = true; [Browsable(true)] [Category("自定义属性")] [Description("设置或显示导航按钮是否为左边")] public bool IsLeft { get { return isLeft; } set { isLeft = value; UpdateImg(); } } private string titleName = "导航按钮"; [Browsable(true)] [Category("自定义属性")] [Description("设置或显示导航按钮的文本内容")] public string TitleName { get { return titleName; } set { titleName = value; lbl_Title.Text = titleName; } } /// /// 更新背景 /// private void UpdateImg() { if (this.IsLeft) { this.BackgroundImage = IsSelected ? Properties.Resources.LeftSelected : Properties.Resources.LeftUnSelected; } else { this.BackgroundImage = IsSelected ? Properties.Resources.RightSelected : Properties.Resources.RightUnSelected; } } [Browsable(true)] [Category("自定义事件")] [Description("设置或显示导航按钮的单击事件")] public new EventHandler Click; private void lbl_Title_Click(object sender, EventArgs e) { this.Click?.Invoke(this, e); } } }