Foxtable(狐表)用户栏目专家坐堂 → 如何用鼠标中键的滚动来控制容易的滚动条


  共有2655人关注过本帖树形打印复制链接

主题:如何用鼠标中键的滚动来控制容易的滚动条

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
如何用鼠标中键的滚动来控制容易的滚动条  发帖心情 Post By:2015/12/10 8:55:00 [显示全部帖子]

我在网上找到一个代码,是C#的,我转换后放到MouseDown 中,但是无效.

If e.Button = MouseButtons.middle Then
    Dim mousePoint As New Point(e.X, e.Y)
    换算成相对本窗体的位置
    mousePoint.Offset(e.Form.BaseForm.Location.X, e.Form.BaseForm.Location.Y)
    判断是否在panel内
    If e.Sender.BaseControl.RectangleToScreen(e.Sender.BaseControl.DisplayRectangle).Contains(mousePoint) Then
        滚动
        e.Sender.BaseControl.AutoScrollPosition = New Point(0, e.Sender.BaseControl.VerticalScroll.Value - e.Delta)
    End If
End If


我还想将此代码放入全局:


''' <summary>
''' 滚动方法
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
 Public Sub FormSample_MouseWheel(sender As Object, e As MouseEventArgs)
'获取光标位置
Dim mousePoint As New Point(e.X, e.Y)
'换算成相对本窗体的位置
mousePoint.Offset(Me.Location.X, Me.Location.Y)
'判断是否在panel内
If panel_content.RectangleToScreen(panel_content.DisplayRectangle).Contains(mousePoint) Then
'滚动
panel_content.AutoScrollPosition = New Point(0, panel_content.VerticalScroll.Value - e.Delta)
End If
End Sub

但是 e As MouseEventArgs) 通不过!
[此贴子已经被作者于2015/12/10 8:55:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/10 9:43:00 [显示全部帖子]

以下是引用Hyphen在2015/12/10 9:01:00的发言:
e As System.Windows.Forms.MouseEventArgs

全局代码不能用Me,改成通过sender来获取窗体或者panel的坐标


 问题就是出在这边,底层的东西 我忘了!


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2015/12/10 9:55:00 [显示全部帖子]

搞定谢谢

 回到顶部