Textbox中响应鼠标滚轮

mycatlove 2009-09-06 07:03:38
一个文本框,要求在获得焦点的时候,正转鼠标滚轮值加一,反转鼠标滚轮值减一。

如何来判断鼠标滚轮是正转还是反转?是不是在MouseWheel事件下面做?
...全文
803 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycatlove 2009-11-28
  • 打赏
  • 举报
回复
楼上的说的没错,我的代码复杂不是在处理鼠标滚轮事件,主要是要判断啥时候+1,啥时候不加,啥时候-1
dylike 2009-09-07
  • 打赏
  • 举报
回复
我们在鼠标滚轮事件中改变某值最多只需要一句代码.
可能你急着结帖没测试.
Private Sub TextBox1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel
TextBox1.Text = CInt(TextBox1.Text) + e.Delta / 120
End Sub

这个是我在做一个仿WIN7桌面转盘的时候发现的.
mycatlove 2009-09-07
  • 打赏
  • 举报
回复
虽然自己解决了,但是来者就有分。
dylike 2009-09-06
  • 打赏
  • 举报
回复
   Private Sub TextBox1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel
TextBox1.Text = CInt(TextBox1.Text) + e.Delta / 120
End Sub
mycatlove 2009-09-06
  • 打赏
  • 举报
回复
解决了,是用MouseWheel事件下的MouseEventArgs.Delta来判断的。
值>0是正滚动,<0是反滚动
    Private Sub TextBox_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles txtZS.MouseWheel, txtFZ.MouseWheel
If My.Computer.Mouse.WheelExists Then
If CType(sender, TextBox).Text <> "" Then
If e.Delta > 0 Then
CType(sender, TextBox).Text = CType(sender, TextBox).Text + 1
Else
If CType(sender, TextBox).Text > 0 Then
CType(sender, TextBox).Text = CType(sender, TextBox).Text - 1
End If
End If
End If
End If
End Sub
贝隆 2009-09-06
  • 打赏
  • 举报
回复
我在VB6.0下面使用钩子函数试了一下,貌似滚动鼠标中键只能触发:WM_MOUSEWHEEL消息,且不管你向前还是向后滚动,都是触发WM_MOUSEWHEEL消息。
wuyq11 2009-09-06
  • 打赏
  • 举报
回复
使用SendMessage函数EM_LINESCROLL或MouseWheel 事件
wuyi8808 2009-09-06
  • 打赏
  • 举报
回复
建议使用 System.Windows.Forms.NumericUpDown 类,该类会自动处理鼠标滚轮事件。
贝隆 2009-09-06
  • 打赏
  • 举报
回复
我看的用Hook函数。

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧