From b6aee6764f60010b967d319b73283c6736f2bdad Mon Sep 17 00:00:00 2001 From: H Date: Tue, 25 Aug 2020 20:44:02 +0800 Subject: [PATCH] =?UTF-8?q?button=20imagelistbox=20bug=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20checkbox=20switch=20=E5=8F=8C=E5=87=BB=E6=95=88=E7=8E=87?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UIButton.cs | 2 +- SunnyUI/Controls/UICheckBox.cs | 22 ++++++++++++++++++++ SunnyUI/Controls/UIImageListBox.cs | 2 +- SunnyUI/Controls/UISwitch.cs | 33 ++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/SunnyUI/Controls/UIButton.cs b/SunnyUI/Controls/UIButton.cs index f78e4ed0..9c2049b0 100644 --- a/SunnyUI/Controls/UIButton.cs +++ b/SunnyUI/Controls/UIButton.cs @@ -92,7 +92,7 @@ namespace Sunny.UI if (useDoubleClick != value) { useDoubleClick = value; - SetStyle(ControlStyles.StandardDoubleClick, value); + SetStyle(ControlStyles.StandardDoubleClick, useDoubleClick); Invalidate(); } } diff --git a/SunnyUI/Controls/UICheckBox.cs b/SunnyUI/Controls/UICheckBox.cs index e23a1e0d..e51d07ac 100644 --- a/SunnyUI/Controls/UICheckBox.cs +++ b/SunnyUI/Controls/UICheckBox.cs @@ -41,6 +41,7 @@ namespace Sunny.UI Size = new Size(150, 29); foreColor = UIStyles.Blue.CheckBoxForeColor; fillColor = UIStyles.Blue.CheckBoxColor; + SetStyle(ControlStyles.StandardDoubleClick, UseDoubleClick); } public delegate void OnValueChanged(object sender, bool value); @@ -104,6 +105,27 @@ namespace Sunny.UI } } + private bool _useDoubleClick = false; + + [Description("是否启用双击事件"), Category("SunnyUI")] + [DefaultValue(false)] + public bool UseDoubleClick + { + get + { + return _useDoubleClick; + } + set + { + if (_useDoubleClick != value) + { + _useDoubleClick = value; + SetStyle(ControlStyles.StandardDoubleClick, _useDoubleClick); + Invalidate(); + } + } + } + protected override void OnPaintFore(Graphics g, GraphicsPath path) { //设置按钮标题位置 diff --git a/SunnyUI/Controls/UIImageListBox.cs b/SunnyUI/Controls/UIImageListBox.cs index de7b6e8f..32af1cc4 100644 --- a/SunnyUI/Controls/UIImageListBox.cs +++ b/SunnyUI/Controls/UIImageListBox.cs @@ -398,7 +398,7 @@ namespace Sunny.UI else if (e.Delta < -10) { int nposnum = si.nPos + temp * SystemInformation.MouseWheelScrollLines; - ScrollBarInfo.SetScrollValue(Handle, nposnum <= si.nMax ? nposnum : si.nMax); + ScrollBarInfo.SetScrollValue(Handle, nposnum <= si.ScrollMax ? nposnum : si.ScrollMax); } } diff --git a/SunnyUI/Controls/UISwitch.cs b/SunnyUI/Controls/UISwitch.cs index d68c24e6..26eecda2 100644 --- a/SunnyUI/Controls/UISwitch.cs +++ b/SunnyUI/Controls/UISwitch.cs @@ -137,12 +137,45 @@ namespace Sunny.UI set => SetRectColor(value); } + private bool useDoubleClick = false; + + [Description("是否启用双击事件"), Category("SunnyUI")] + [DefaultValue(false)] + public bool UseDoubleClick + { + get + { + return useDoubleClick; + } + set + { + if (useDoubleClick != value) + { + useDoubleClick = value; + Invalidate(); + } + } + } + protected override void OnClick(EventArgs e) { base.OnClick(e); Active = !Active; } + protected override void OnDoubleClick(EventArgs e) + { + if (!useDoubleClick) + { + base.OnClick(e); + Active = !Active; + } + else + { + base.OnDoubleClick(e); + } + } + public override void SetStyleColor(UIBaseStyle uiColor) { base.SetStyleColor(uiColor);