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