以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何用鼠标中键的滚动来控制容易的滚动条 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78485) |
-- 作者:blackzhu -- 发布时间: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编辑过]
|
-- 作者:Hyphen -- 发布时间:2015/12/10 9:01:00 -- e As System.Windows.Forms.MouseEventArgs 全局代码不能用Me,改成通过sender来获取窗体或者panel的坐标
|
-- 作者:大红袍 -- 发布时间:2015/12/10 9:16:00 -- 汗,肯定要绑定 MouseWheel 事件啊
http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=55394&replyID=368746&skin=1
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=41235&skin=0
|
-- 作者:blackzhu -- 发布时间:2015/12/10 9:43:00 -- 以下是引用Hyphen在2015/12/10 9:01:00的发言:
e As System.Windows.Forms.MouseEventArgs 全局代码不能用Me,改成通过sender来获取窗体或者panel的坐标 问题就是出在这边,底层的东西 我忘了!
|
-- 作者:blackzhu -- 发布时间:2015/12/10 9:55:00 -- 搞定谢谢 |