我正在制作一个2d的按钮数组,并希望它的标记是它的数组位置,包括开始的0和结束的0(例如g 01或2002).这个是可能的吗?
Button[,] buttonGrid = new Button[11, 21];
Button gridButton = new Button
{
Tag = int.Parse(yIndex.ToString() + xIndex.ToString()),
BackColor = Color.LightGray,
Enabled = true,
Size = new Size(size, size),
Location = new Point(25, 25)
};我使用for循环循环遍历数组中的每个元素,这是x和y索引的来源。
这将返回第一行中的1,2,3-9,然后10,11,12等。但我希望是01,02,03或020。
发布于 2022-08-25 20:31:15
您可能不应该依赖字符串连接来创建标记。因为您不知道"111“是否意味着内部使用x=1, y=11或x=11, y=1标记来区分UI对象。通常,当将两个坐标转换为单个索引时,您将进行如下计算
var i = yIndex * width + xIndex;这是可以逆转的:
var yIndex = i / width;
var xIndex = i - yIndex * width;如果您希望数字是XXYY格式,那么您可以简单地使用100作为宽度。如果要将其转换为文本标签,则可以在将其转换为字符串(即i.ToString("0000") )时使用格式说明符。
发布于 2022-08-25 18:30:46
如果您需要在int中使用前面的零,我建议您保留string的位置。当您需要计算它时,只需将其临时转换为int并执行计算。您可以在Tag中分配任何内容。
https://stackoverflow.com/questions/73491088
复制相似问题