From a4acdf6a5083aa93b900369e21b83bf6f88265b6 Mon Sep 17 00:00:00 2001 From: H Date: Sat, 22 Aug 2020 11:45:41 +0800 Subject: [PATCH] =?UTF-8?q?listbox=E4=BC=98=E5=8C=96=E6=BB=9A=E8=BD=AE?= =?UTF-8?q?=E5=BF=AB=E9=80=9F=E6=BB=9A=E5=8A=A8=E6=B5=81=E7=95=85=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI.Demo/Controls/FListBox.cs | 2 +- SunnyUI/Controls/UIListBox.cs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/SunnyUI.Demo/Controls/FListBox.cs b/SunnyUI.Demo/Controls/FListBox.cs index b84ea93b..173c71ab 100644 --- a/SunnyUI.Demo/Controls/FListBox.cs +++ b/SunnyUI.Demo/Controls/FListBox.cs @@ -13,7 +13,7 @@ namespace Sunny.UI.Demo public override void Init() { uiListBox1.Items.Clear(); - for (int i = 0; i < 20; i++) + for (int i = 0; i < 50; i++) { uiListBox1.Items.Add(i); } diff --git a/SunnyUI/Controls/UIListBox.cs b/SunnyUI/Controls/UIListBox.cs index 63b57ced..9fb89305 100644 --- a/SunnyUI/Controls/UIListBox.cs +++ b/SunnyUI/Controls/UIListBox.cs @@ -395,13 +395,16 @@ namespace Sunny.UI if (Bar != null && Bar.Visible) { var si = ScrollBarInfo.GetInfo(Handle); + int temp = Math.Abs(e.Delta / 120); if (e.Delta > 10) { - ScrollBarInfo.SetScrollValue(Handle, (si.nPos - SystemInformation.MouseWheelScrollLines) >= si.nMin ? si.nPos - SystemInformation.MouseWheelScrollLines : 0); + int nposnum = si.nPos - temp * SystemInformation.MouseWheelScrollLines; + ScrollBarInfo.SetScrollValue(Handle, nposnum >= si.nMin ? nposnum : 0); } else if (e.Delta < -10) { - ScrollBarInfo.SetScrollValue(Handle, (si.nPos + SystemInformation.MouseWheelScrollLines) <= si.nMax ? (si.nPos + SystemInformation.MouseWheelScrollLines) : si.nMax); + int nposnum = si.nPos + temp * SystemInformation.MouseWheelScrollLines; + ScrollBarInfo.SetScrollValue(Handle, nposnum <= si.nMax ? nposnum : si.nMax); } }