首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET TrackBar MouseDown是否跟随游标?

.NET TrackBar MouseDown是否跟随游标?
EN

Stack Overflow用户
提问于 2013-07-02 05:34:54
回答 1查看 2.3K关注 0票数 1

我目前使用这段代码来修复一个错误,即如果您单击水平TrackBar上的某处,它会跳到TrackBar的中间,然后跳到末尾。所以这段代码修复了这个bug,它现在跳转到您单击的位置。

但仍然存在一个问题,当我保持我的鼠标按下,并在TrackBar周围移动滑块应该跟随,但它只是重置到开始位置,我如何让它跟随在光标的顶部?我需要一个定时器控件吗?

代码语言:javascript
复制
Private Sub tbTest_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tbTest.MouseDown
    Dim dblValue As Double

    'Jump to the clicked location, bug FIX.
    dblValue = (Convert.ToDouble(e.X) / Convert.ToDouble(tbTest.Width)) * (tbTest.Maximum - tbTest.Minimum)
    tbTest.Value = Convert.ToInt32(dblValue)
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 05:51:44

使该方法处理MouseDown()和MouseMove()事件,如下所示:

代码语言:javascript
复制
Private Sub tbTest_MovePointer(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tbTest.MouseDown, tbTest.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
        Dim dblValue As Double

        'Jump to the clicked location, bug FIX.
        dblValue = (Convert.ToDouble(e.X) / Convert.ToDouble(tbTest.Width)) * (tbTest.Maximum - tbTest.Minimum)
        tbTest.Value = Convert.ToInt32(dblValue)
    End If
End Sub

*请注意在第一行末尾的Handles关键字之后列出的多个事件。我还添加了一个检查,以确保鼠标左键已按下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17414108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档