Mob*_*ero 16 c# position click picturebox
我正在制作一款游戏,玩家可以点击其中一个单位(即图片框),并且玩家的单位位于中心,可以看到一个圆圈.(圆圈也是一个图片框)当玩家点击圆圈的图片框时,我需要弄清楚点击的位置是否在圆的半径范围内.我的问题是如何获得点击的位置?
Ale*_*dih 26
在点击处理程序中:
MousePosition.X
MousePosition.Y
Run Code Online (Sandbox Code Playgroud)
添加示例:
//
// 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);
Run Code Online (Sandbox Code Playgroud)
..........................................
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show(string.Format("X: {0} Y: {1}", MousePosition.X, MousePosition.Y));
}
Run Code Online (Sandbox Code Playgroud)
显示:"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 = e.X;
Y = e.Y;
}
Run Code Online (Sandbox Code Playgroud)
通过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));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68025 次 |
| 最近记录: |