我制作了看起来像棋盘的动态棋盘。有什么方法可以获取我点击的某个按钮的坐标吗?示例:如果我单击最后一个按钮,标签文本将是:“第 5 列,第 5 行”。
问问题
334 次
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 回答