如何获得Click的位置?
我正在制作一款游戏,玩家将点击其中一个单位(即图片框),并且玩家的单位位于中心,将显示一个圆圈。 (圆圈也是一个图片框)当玩家点击圆圈的图片框时,我需要弄清楚点击的位置是否在圆的半径范围内。 我的问题是如何获得点击的位置?
在点击处理程序中:
MousePosition.X MousePosition.Y
添加示例:
// // pictureBox1 Init // this.pictureBox1.Location = new System.Drawing.Point(1, 1); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(100, 100); this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
……………………………………
private void pictureBox1_Click(object sender, EventArgs e) { MessageBox.Show(string.Format("X: {0} Y: {1}", MousePosition.X, MousePosition.Y)); }
显示:“X:537 Y:946”
还有一件事:
带坐标的MouseEventArgs只接收MouseUp和MouseDown。
鼠标点击无法让你回头,因为点击包含MouseUp和MouseDown,它们都可以有不同的坐标。
还有一个解决方案(最好的想法)
private int X; private int Y; private void pictureBox1_Click(object sender, EventArgs e) { MessageBox.Show(string.Format("X: {0} Y: {1}", X, Y)); } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { X = eX; Y = eY; }
使用PictureBox
的MouseClick
事件PictureBox
这种事情……
看到
http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseclick.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.aspx
通过Yahia的回答,我了解到EventArgs
可以转换为MouseEventArgs
。
private void pictureBox1_Click(object sender, EventArgs e) { MouseEventArgs e2 = (MouseEventArgs) e; MessageBox.Show(string.Format("X: {0} Y: {1}", e2.X, e2.Y)); }