Vb.net 当光标滚动文本框时停止计时器

Vb.net 当光标滚动文本框时停止计时器,vb.net,richtextbox,Vb.net,Richtextbox,我使用的计时器1在光标位于richtextbox内时停止,因此我已经尝试了一些事件,如鼠标进入、鼠标按下和获得焦点,以停止计时器,但当我滚动richtextbox时,这些事件不起作用。 当光标位于richtextbox内时,哪个事件允许我滚动并关闭计时器1? 谢谢要做到这一点,似乎没有简单、单一的方法。正如您所发现的,当您单击滚动条时,没有Enter或MouseEnter事件。我认为以下几点应该符合你的要求: Private isscrollingrgtb As Boolean=False 私有

我使用的计时器1在光标位于richtextbox内时停止,因此我已经尝试了一些事件,如鼠标进入、鼠标按下和获得焦点,以停止计时器,但当我滚动richtextbox时,这些事件不起作用。 当光标位于richtextbox内时,哪个事件允许我滚动并关闭计时器1?
谢谢

要做到这一点,似乎没有简单、单一的方法。正如您所发现的,当您单击滚动条时,没有
Enter
MouseEnter
事件。我认为以下几点应该符合你的要求:

Private isscrollingrgtb As Boolean=False
私有子RichTextBox1_Enter(发送者作为对象,e作为事件参数)处理RichTextBox1.Enter
RTB收到了焦点。
计时器1.Stop()
端接头
私有子RichTextBox1_Leave(发送者作为对象,e作为事件参数)处理RichTextBox1.Leave
“RTB失去了焦点。
Timer1.Start()
端接头
私有子RichTextBox1u VScroll(发送方作为对象,e作为事件参数)处理RichTextBox1.VScroll
如果ActiveControl不是RichTextBox1,则
'用户在RTB没有焦点时滚动了它。
计时器1.Stop()
isScrollingRtb=真
如果结束
端接头
私有子表单1u MouseEnter(发送者作为对象,e作为事件参数)处理Me.MouseEnter
如果是克洛林,那么
'用户在没有焦点的情况下滚动RTB后离开了RTB。
Timer1.Start()
isScrollingRtb=假
如果结束
端接头

当用户单击滚动条时,会引发
VScroll
事件,因此您可以
停止该事件上的
计时器。问题在于决定何时重新启动。在本例中,我选择在鼠标指针下一步移动表单本身时执行此操作。

Hi,不幸的是,事件enter在滚动时也没有停止计时器。很明显,我是在做Timer1.Stop()。@Mattia,我已经替换了我原来的答案。嗨@jmcillhinney,谢谢它对richtextbox有用。如果有列表框,你能帮我吗?我意识到listbox中没有Vscroll事件。我应该用什么来代替呢?