C# 控件在使用鼠标滚轮时自动向后滚动

C# 控件在使用鼠标滚轮时自动向后滚动,c#,winforms,user-controls,C#,Winforms,User Controls,我创建了一个控件,我遇到了一个奇怪的问题。当我使用鼠标滚轮滚动时,视图会被调整,但当我移动鼠标时,滚动条会跳回其原始位置 但是,当我单击滚动条并上下拖动滚动条,然后使用鼠标滚轮时,问题就消失了 我想发布一些代码,但我不知道要粘贴什么代码。这是处理滚动条可见性的代码: protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) { base.Set

我创建了一个控件,我遇到了一个奇怪的问题。当我使用鼠标滚轮滚动时,视图会被调整,但当我移动鼠标时,滚动条会跳回其原始位置

但是,当我单击滚动条并上下拖动滚动条,然后使用鼠标滚轮时,问题就消失了

我想发布一些代码,但我不知道要粘贴什么代码。这是处理滚动条可见性的代码:

protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
{
    base.SetBoundsCore(x, y, ControlWidth, ControlHeight, specified);
}
ControlWidth
ControlHeight
是用于计算控件宽度和高度的自定义属性

编辑1: 班级签名:

public partial class TimeLineScheduleControl : UserControl
编辑2:


我注意到在表单加载(控件处于打开状态)中,
AutoScrollPosition
Y
值被设置为-51而不是0。

这是代码在类级别上的外观,应该可以工作,因为您正在重写初始基方法 我只是举一个例子,所以你有一些东西要遵循。。 如果无法正常工作,请尝试重新启动或使用新鼠标。。这是usb/usb红外线鼠标吗

public class YourClass : UserControl
{
    protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
    {
        if (height > 35)
        {
            height = 35;
        }
        base.SetBoundsCore(x, y, width, height, specified);
    }
}

对不起,伙计们,我现在感觉很傻。这个你永远也猜不到的

控件所在的窗体已注册到控件的
MouseMove
。当鼠标移动被触发时,我设置标签的
Text
属性。这个标签在我的表格上。因此,当我使用鼠标滚轮滚动,然后触发鼠标移动时,滚动条由于某种原因向后跳


不,我不再使用鼠标移动事件,一切都按预期进行…

您应该尝试使用其他鼠标,看看这是否解决了问题。我们可以看到此事件的完整类签名吗。。需要查看类继承了什么控件吗from@PeteWilson我尝试了不同的鼠标,但仍然有问题我尝试了重新启动,我尝试了不同的鼠标。两人都没有成功。我的控件继承自
UserControl