vb.net光标不见了 vb如何设置光标位置

vb.net中使用sendkeys无效?

vb.net中使用sendkeys无效,是因为窗口没有处于活动状态。

专注于为中小企业提供成都做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业盐边免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

VB6的SendKeys有时有些问题,比如打开任务管理器,以下代码可以:

Sub main()

Dim WshShell As Object

Set WshShell = CreateObject("WScript.Shell")

WshShell.SendKeys "^+{ESC}"

End Sub

以下代码却不可以:

Sub main()

SendKeys "^+{ESC}"

End Sub

所以最好使用WScript.Shell中的SendKeys。

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如何更换程序光标

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

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

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://scyanting.com/article/ddoegij.html