vb.net鼠标光标 vb 鼠标点击

求VB.NET怎么捕捉系统鼠标当前状态?如:打开文件等待时的漏斗状态,或双箭头的可拉伸状态,谢谢。

me.Cursor.ToString()

创新互联是一家专业提供峨山县企业网站建设,专注与网站制作、网站建设HTML5建站、小程序制作等业务。10年已为峨山县众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

或者可以枚举

me.cursor=Cursors.WaitCursor之类的

不过有以下局限:

自定义指针无法识别

窗口处于非激活状态可能无效

与其他控件可能冲突

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中用程序控制鼠标移动和点击

调用api

在Visual Baisc.net中的声明:

Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Const MOUSEEVENTF_LEFTDOWN = H2 '模拟鼠标左键按下

Public Const MOUSEEVENTF_LEFTUP = H4 ’模拟鼠标左键释放

Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模拟鼠标中间键按下

Public Const MOUSEEVENTF_MIDDLEUP = H40 '模拟鼠标中间键释放

Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模拟鼠标右键按下

Public Const MOUSEEVENTF_RIGHTUP = H10 '模拟鼠标右键释放

Public Const MOUSEEVENTF_MOVE = H1 '模拟鼠标指针移动

例:

mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0

'在(10,10)模拟鼠标左键按下

VB.NET中如何获取TextBox的光标屏幕坐标?

TextBoxBase.GetPositionFromCharIndex 方法

检索控件内指定字符索引处的位置。

此方法使您得以确定特定字符索引在控件中的位置。此方法可用于诸如显示快捷菜单项或控件中某个单词的帮助信息等任务。例如,如果希望当用户在控件中的单词上右击时向用户显示选项菜单,则可以使用此方法确定单词的位置以正确显示 ContextMenu 控件。

Control.PointToScreen 方法

将指定工作区点的位置计算成屏幕坐标。

vb.net如何更换程序光标

比如你要更换在你某个窗体上的光标。

那么在这个窗体内用这样的代码

Me.Cursor = System.Windows.Forms.Cursors.Cross

如果你要更换当前系统显示的光标

System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Cross

其中Cross代表十字光标,你也可以更改成其他的,直接查看Cursors中的各成员就可以找到了。

vb.net如何去除光标

改变鼠标位置或让鼠标消失。

Shift + 方向键 ,选择 从当前光标至移动后光标所在位置的所有文本

Ctrl+Shift+左右方向键,选择 从当前光标至下一(上一)单词首(尾)

Shift + Alt + 方向键,选择 由当前光标与 移动后光标所构成的矩形的区域内所有文本

Ctrl + 单击鼠标左键, 选择 单击位置的整个单词

Shift + 单击鼠标左键,选择 从当前光标至 鼠标单击位置区间的所有文本

Shift + Home(End), 选择 从当前光标至 行首(尾)的所有文本


分享名称:vb.net鼠标光标 vb 鼠标点击
文章分享:http://hbruida.cn/article/hiejcp.html