正文
vb.net鼠标不在控件 vb鼠标位置
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
VB.NET改变鼠标位置和让鼠标消失
几乎找不到真正VB.NET的api,都是自己将VB的api改成VB.NET的api,我的理解是声明中对应输入是H的地方保留Long,其他的Long改成Integer,既然VB.NET连MSDN都找不到较全的api说明,不保证api的用法在VB.NET其他版本中适用。
给你个好玩的例子,包括鼠标的隐藏(Ctrl_↓)、显示(Ctrl_↑),移动、点击
在Form1上放上2个TextBox,其中TextBox1.Multiline = True,并且面积大些,2个Button,运行后在TextBox1中点击一下会记录位置,移开鼠标,点击移动或点击Button,可模拟在TextBox1中的点击
Public Class Form1
Public My_MousePosition As Point
'模拟鼠标移动、点击
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'定义光标的位置
Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Integer, ByVal y As Integer) As Integer
'鼠标的隐藏
Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Integer) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Multiline = True
Button1.Text = "点击"
Button2.Text = "移动"
Me.KeyPreview = True
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.Control And e.KeyCode = Keys.Down Then ShowCursor(0)
If e.Control And e.KeyCode = Keys.Up Then ShowCursor(1)
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
TextBox2.Text = MousePosition.X " " MousePosition.Y
End Sub
Private Sub TextBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseClick
My_MousePosition = MousePosition
TextBox1.Text = My_MousePosition.X " " My_MousePosition.Y vbCrLf
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SetCursorPos(My_MousePosition.X, My_MousePosition.Y)
mouse_event(H2, 0, 0, 0, 0)
mouse_event(H4, 0, 0, 0, 0)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetCursorPos(My_MousePosition.X, My_MousePosition.Y)
End Sub
End Class
其中
mouse_event Lib "user32" (ByVal dwFlags As Long
的dwFlags的代码是
Const MOUSEEVENTF_LEFTDOWN = H2
Const MOUSEEVENTF_LEFTUP = H4
Const MOUSEEVENTF_MIDDLEDOWN = H20
Const MOUSEEVENTF_MIDDLEUP = H40
Const MOUSEEVENTF_MOVE = H1
Const MOUSEEVENTF_ABSOLUTE = H8000
Const MOUSEEVENTF_RIGHTDOWN = H8
Const MOUSEEVENTF_RIGHTUP = H10
vb.net 如何使鼠标移入放置在panel中的控件时不响应Panel的mouseleave事件
在事件处理程序中,通过条件语句屏蔽当鼠标移动到Label控件时的处理
Public Class Form1
Private panduan As Boolean = False
Private Sub Panel1_MouseLeave(sender As Object, e As EventArgs) Handles Panel1.MouseLeave
If panduan = False Then
' 你的处理
End If
End Sub
Private Sub Label1_MouseEnter(sender As Object, e As EventArgs) Handles Label1.MouseEnter
panduan = True
End Sub
End Class
vb.net中按钮控件制作不响应鼠标事件
Dim txtc As Color = Color.White
Property txtcolor() As Color
Get
Return txtc
End Get
Set(ByVal value As Color)
txtc = value
Me.invalidate()
End Set
End Property
Private Sub RoundBtn_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
txtc = Color.Red
Me.Cursor = Cursors.Hand
End Sub
vb.net 如何让一个控件不接收鼠标事件
接收事件是无法屏蔽的,但是你可以不处理这个事件啊,就当它没发生不就行了
vb.net怎么让鼠标不动三秒之后隐藏控件?
用timer就行,Timer触发间隔3000,触发了就隐藏控件,并停止Timer。
然后是MouseMove事件,当x或y的移动量大于一个值(假设为10)时,才显示控件,并重新计时。
windows可能会有些错误消息,或者鼠标自己也会有些错误信号,这些都可能导致触发MouseMove事件,所以需要指定移动量大于某一最小值时,才做处理。
vb.net鼠标不在控件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb鼠标位置、vb.net鼠标不在控件的信息别忘了在本站进行查找喔。