十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用API函数GetCursorPos来获取位置;; 鼠标x位置, Shift As Integer; P,
创新互联公司是一家专业提供简阳企业网站建设,专注与成都做网站、成都网站建设、html5、小程序制作等业务。10年已为简阳众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
GetCursorPos P
Print " Y
End If
End Sub
方法二, " (ByVal vKey As Long) As Integer
Private Declare Function GetCursorPos Lib quot, X As Single:"右键按下quot,哪怕鼠标不在应用程序内也行
在窗体上添加一个计时器; P,最高位为1,用GetAsyncKeyState来获取是否按下左键
这种方法在任何时候都可以获取.X quot,其坐标值为所在容器的相对坐标值)
Private Sub Form_MouseDown(Button As Integer; (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Sub Timer1_Timer()
Dim P As POINTAPI
X = GetAsyncKeyState(1)
If X = -32767 Then ':" X; P:quot: 直接用 MouseDown事件
举例;; 鼠标y位置;,是屏幕中的位置(不是相对窗体的)
Private Declare Function GetAsyncKeyState Lib quot.Y
End If
X = GetAsyncKeyState(2)
If X = -32767 Then
Cls
Print quot:quot,设置Interval属性为10
获取的位置的数字,
GetCursorPos P
Print quot:(这种方法获取的是点的位置在窗体中;user32" P;x返回的是16位整数:"user32";Y:quot,却该对象有MouseDown事件才行; 鼠标y位置; 鼠标x位置, Y As Single)
If Button = 1 Then
Cls
Print quot,表明按下
Cls
Print quot.X "X;左键按下quot方法一
你好 那因为你放在了Label1控件的移动事件了 。
说明:
当前你的代码是在当鼠标经过Label1的MouseMove事件才被激活,其他事件不备激活的。
建议应用函数调用具体方法网上应该有
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text = System.Windows.Forms.Cursor.Position.X.ToString "," System.Windows.Forms.Cursor.Position.Y.ToString
End Sub
上面代码我是做过测试才发的,完全能实现你的要求!!!!!!
通过窗体的MouseDown事件的e.X和e.Y属性获取。通过e.Location属性获取Point类型的坐标。
下面的代码示例使用 Location 属性跟踪鼠标左键单击,并绘制一系列直线段作为对用户输入的响应。如果隐藏窗体然后重新显示它,此示例不保留已绘制的线段,该代码为简单起见而被省略了。
Dim FirstPoint As Point
Dim HaveFirstPoint As Boolean = False
Sub Form1_MouseDownDrawing(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
If HaveFirstPoint Then
Dim g As Graphics = Me.CreateGraphics()
g.DrawLine(Pens.Black, FirstPoint, e.Location)
HaveFirstPoint = False
Else
FirstPoint = e.Location
HaveFirstPoint = True
End If
End Sub
采用窗体的MouseMove事件来获取鼠标坐标是可以的。如下我在文本框中显示当前鼠标的坐标程序,鼠标移动,坐标自动更新,只需要一个文本框控件,代码如下:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = "当前鼠标坐标为,X:" X "Y:" Y
End Sub
控件中keyup属性记录键盘操作
比如:
Private Sub from1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
if e.keycode = keys.Enter then
lable1.text =Cursor.Position.X
lable2.text = Cursor.Position.Y
end if
end sub
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐标声明
Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐标声明
Private Structure POINTAPI '声明坐标变量
Public x As Int32 '声明坐标变量为32位
Public y As Int32 '声明坐标变量为32位
End Structure
'以上是声明部分
'以下是窗口部分
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用时钟控件来取坐标,窗口上放个Timer组件,Enabled为允许,周期为10到100毫秒均可
Dim P As POINTAPI '声明坐标变量
Dim xx, yy '声明转换要用到的变量
GetCursorPos(P) '获取鼠标在屏幕中的位置
ScreenToClient(Me.Handle.ToInt32, P) '转换为本窗体的坐标
xx = P.x.ToString '把X转换成能显示到文本框的字符串格式
yy = P.y.ToString '把Y转换成能显示到文本框的字符串格式
TextBox1.Text = xx + "和" + yy '文本框的内容为X坐标和Y坐标
End Sub