gpt4 book ai didi

c# - 如何确定鼠标点击的位置

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:31 25 4
gpt4 key购买 nike

我正在用 C# 制作国际象棋游戏,我使用 64 个 pictureBox 来显示棋盘。现在,我试图弄清楚如何确定用户单击的位置以允许用户通过单击不同的图 block /图片框来移动片段。我是 C# 的新手,但我试图通过检测鼠标在单击时的位置来做到这一点。我一直在使用:

void MainFormClick(object sender, EventArgs e){
Point mousePosition = pictureBox1.PointToClient(Cursor.Position); //pictureBox1 is in upper-left
int indexClicked = (mousePosition.X / tileSize) + (8 * (mousePosition.Y / tileSize));
if (indexClicked >= 0 && indexClicked <= 63){
//do code things?
}
this.Text = "Chess - " + indexClicked;
}

我认为这是行不通的,因为用户实际上并没有点击表单,而是点击了图片框。我不想创建 64 个 pictureBox*Click 方法,那么有没有其他方法我应该这样做或我应该使用的方法?

编辑:我刚刚查看了 How to get control under mouse cursor .我的代码需要稍微修改一下,以便更好地确定鼠标在单击时位于哪个 pictureBox 上,但我真正的问题是,单击 pictureBoxes 似乎并没有运行上述方法。我正在寻找一种方法来在单击鼠标时运行一段代码,而不管它单击的是什么控件或表单的一部分。

最佳答案

我可能只使用普通的 Click 事件。图片框有一个您可以绑定(bind)的 Click 事件。我不确定您是如何添加它们的,但是对于其中的 64 个,我可能会在循环中动态添加它们。在创建每个事件时,将 Click 事件绑定(bind)到一个公共(public)处理程序。以易于找出其所在位置的方式命名每个控件。然后在处理程序中,您将获得对被单击的图片框的对象引用,并可以从那里确定要做什么。

关于c# - 如何确定鼠标点击的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32038274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com