我创建了一个控件,我遇到了一个奇怪的问题。当我使用鼠标滚轮滚动时,视图会被调整,但当我移动鼠标时,滚动条会跳回原来的位置。
但是,当我单击滚动条并向上或向下拖动该栏然后使用鼠标滚轮时,问题就消失了。
我想发布一些代码,但我不知道要粘贴哪些代码。这是处理滚动条可见性的代码:
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:
我已注意到在表单加载(控件打开的位置)中,Y
的{{1}}值设置为-51而不是0.
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
控件所在的表单已注册到控件的MouseMove
。触发鼠标移动后,我设置了标签的Text
属性。这个标签在我的表格之上。因此,当我使用鼠标滚轮滚动,稍后触发鼠标移动时,滚动条会因某种原因跳回来。
不,我不再使用鼠标移动事件,一切都按预期工作......