在棋盘中的按钮坐标

时间:2015-11-02 19:13:34

标签: c# chess coords

我制作了看起来像棋盘的动态棋盘。有没有办法让我点击一些按钮的坐标?示例:如果我单击最后一个按钮,标签文本将为:"第5列,第5行和第34行;

enter image description here

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

在棋盘中每个按钮的点击事件中,检索发件人按钮的标签值

答案 1 :(得分: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属性。然后,您可以通过点击检索它,并且您已准备好所有信息。