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
。