-1

我制作了看起来像棋盘的动态棋盘。有什么方法可以获取我点击的某个按钮的坐标吗?示例:如果我单击最后一个按钮,标签文本将是:“第 5 列,第 5 行”。

在此处输入图像描述

4

2 回答 2

0

您为每个对象设置一个标签,使用合适的对象而不是简单的整数。

例如,您可以使用Tuple<int, int>

btn.Tag = Tuple<int, int>.Create(row, column);

或者

btn.Tag = new Point(row, column);

如果您使用不支持元组的旧版本 .Net 框架

在棋盘中每个按钮的单击事件中,检索发送者按钮的标记值

于 2015-11-02T19:20:49.950 回答
0

假设这d是一个 int (和全局):

int tag=(Button)sender.Tag;
int row=tag/d;
int col=tag%d;

例如,5x5 网格中的第 19 个按钮的标记为 18(您从 0 开始)。然后 18/5 是 3。而 18%5 是 3。这将是第 3 行第 3 列(假设您也开始用 0 对行和列进行编号,否则只需添加 1)。如果这没有意义,则 18 除以 5 是 3,余数为 3。在整数数学中,/获取被除数部分,并%得到巧妙地转换为行和列的余数。

如果您需要在按钮中存储比行/列更多的数据,您可以考虑使用自定义类并将其分配给 Tag 属性。然后,您可以单击检索它,您将准备好所有信息。

于 2015-11-02T19:26:09.420 回答