C# 当滚动条“最大值”属性更改时,用拇指通过编程移动光标

C# 当滚动条“最大值”属性更改时,用拇指通过编程移动光标,c#,cursor,scrollbar,C#,Cursor,Scrollbar,在我的应用程序中,我有一个VScrollBar控件,用于上下滚动控件的内容。但是数据被实时添加到控件中,随着数据的添加,我调整VScrollBar.LargeChange和VScrollBar.Maximum值。发生这种情况时,拇指会适当移动,并且由于VScrollBar.Value没有更改,因此控件的显示内容不会更改。这是完美的工作 但是,我的问题是,如果用户在控件内容更改时按住拇指上的鼠标按钮(因此VScrollBar.LargeChange和VScrollBar.Maximum都在更改),

在我的应用程序中,我有一个
VScrollBar
控件,用于上下滚动控件的内容。但是数据被实时添加到控件中,随着数据的添加,我调整
VScrollBar.LargeChange
VScrollBar.Maximum
值。发生这种情况时,拇指会适当移动,并且由于
VScrollBar.Value
没有更改,因此控件的显示内容不会更改。这是完美的工作

但是,我的问题是,如果用户在控件内容更改时按住拇指上的鼠标按钮(因此
VScrollBar.LargeChange
VScrollBar.Maximum
都在更改),拇指将移动,但光标保持在相同的位置;它不会随着鼠标移动

随着新数据的添加,我希望鼠标随着拇指逐渐向上移动


如何通过编程移动光标,使其相对于拇指的位置保持不变?

如果用户试图“握住”拇指,不移动拇指不是更好吗?@RufusL因为控件的内容正在更改,即添加了更多数据,拇指的相对位置会移动,以便控件的内容保持固定。例如,假设有100行,滚动条的值是50,所以我们看到数据从大约50行开始,拇指大约在滚动条的中间。现在,添加了100多行,但值仍然是50:拇指将是距离顶部大约1/4的距离,滚动条仍然显示从大约50行开始的数据。因此,如果用户按住拇指的值为50,我不希望随着添加更多数据而改变值,因为我希望显示的数据保持不变。这是自然工作的,没有做任何特殊的事情,但是一个副作用是,当添加新数据时,拇指向上移动,光标保持固定,拇指和光标之间的距离增加。