listbox优化滚轮快速滚动流畅性
This commit is contained in:
parent
f0a1cccd6c
commit
a4acdf6a50
@ -13,7 +13,7 @@ namespace Sunny.UI.Demo
|
|||||||
public override void Init()
|
public override void Init()
|
||||||
{
|
{
|
||||||
uiListBox1.Items.Clear();
|
uiListBox1.Items.Clear();
|
||||||
for (int i = 0; i < 20; i++)
|
for (int i = 0; i < 50; i++)
|
||||||
{
|
{
|
||||||
uiListBox1.Items.Add(i);
|
uiListBox1.Items.Add(i);
|
||||||
}
|
}
|
||||||
|
@ -395,13 +395,16 @@ namespace Sunny.UI
|
|||||||
if (Bar != null && Bar.Visible)
|
if (Bar != null && Bar.Visible)
|
||||||
{
|
{
|
||||||
var si = ScrollBarInfo.GetInfo(Handle);
|
var si = ScrollBarInfo.GetInfo(Handle);
|
||||||
|
int temp = Math.Abs(e.Delta / 120);
|
||||||
if (e.Delta > 10)
|
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)
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user