编写鼠标单击X和Y以控制台

时间:2013-07-02 07:08:42

标签: vb.net click mouse

我正在尝试编写一个需要找到鼠标单击的X和Y的程序,所以我写了这个小调试代码

Private Sub PictureBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseClick

  Console.WriteLine(ToString(e.X) + "," + ToString(e.Y))

End Sub

当我运行它时,我收到错误An unhandled exception of type 'System.IndexOutOfRangeException' occurred in WindowsApplication1.exe我看不出我的代码是错误的。

2 个答案:

答案 0 :(得分:2)

很好的VB.NET陷阱,由()引起意味着很多东西。在这种情况下,它是索引表达式。实际上,您正在调用表单的ToString()方法,换句话说是Me.ToString(),并返回类似“WindowsApplication1.Form1”的字符串。在字符串上使用(x)是有效的语法,它返回位置x处的字符。当你将鼠标放在最左上角的时候工作,你会得到类似W,W的东西:)但是移动鼠标它会变成Kaboom!当您索引字符串中超出字符串长度的位置时。

修复:

 Console.WriteLine(e.X.ToString() + "," + e.Y.ToString())

或:

 Console.WriteLine("{0},{1}", e.X, e.Y)

或:

 Console.WriteLine(e.Location)

或更健全:

 Label1.Text = e.Location.ToString()

答案 1 :(得分:0)

是否编译? 改变行

Console.WriteLine(ToString(e.X) + "," + ToString(e.Y))

Console.WriteLine(e.X.ToString() + "," + e.Y.ToString())