gpt4 book ai didi

c# - 尝试在 c# 中为电路板创建数组中的图片框网格

转载 作者:行者123 更新时间:2023-11-30 15:30:28 26 4
gpt4 key购买 nike

我正在尝试使用数组中的图片框为 Naughts and crosses (tic tac toe) 游戏制作棋盘,而我想出的是这个。这在我按下按钮时开始。

for (int i = 0; i <= 3; i++)
{
for (int j = 0; j <= 3; j++)
{
PictureBox[,] pb = new PictureBox[i, j];
pb[i, j].Location = new Point(i * 150 + 100, j * 150 + 100);
pb[i, j].Width = 150;
pb[i, j].Height = 150;
pb[i, j].Visible = true;
pb[i, j].BorderStyle = BorderStyle.FixedSingle;
pb[i, j].BringToFront();
this.Controls.Add(pb[i, j]);
}
}

这会抛出一个“System.IndexOutOfRangeException”异常

pb[i, j].Location = new Point(i * 150 + 100, j * 150 + 100);

这里有什么问题吗?

最佳答案

您离得不远了 - 您需要在循环外声明数组,并在每次迭代时创建一张图片 - 这可行(已测试):

            PictureBox[,] pb = new PictureBox[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
pb[i,j] = new PictureBox();
pb[i, j].Location = new Point(i * 150 + 100, j * 150 + 100);
pb[i, j].Width = 150;
pb[i, j].Height = 150;
pb[i, j].Visible = true;
pb[i, j].BorderStyle = BorderStyle.FixedSingle;
pb[i, j].BringToFront();
this.Controls.Add(pb[i, j]);
}
}

(注意循环中的逻辑也是错误的,它应该是 < 3 而不是 <= 3 因为你从 0 开始)

关于c# - 尝试在 c# 中为电路板创建数组中的图片框网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com