1

C# でチェス戦略アプリケーションを作成しようとしています。panel1、panel2 などの名前が付けられたフォーム デザイナーにパネルを配置しました。「chessBoardPanels[0,0]」のような 2D 配列にパネルを割り当てる方法を知る必要があります。次のようなコマンドを使用して、パネルの背景を実際に制御します。

chessBoardPanels[0,0].Background=Color.Black;

しかし、ある種のオブジェクト参照が必要だと言っています。

4

3 に答える 3

2

私はむしろこのようなものに行きたいです

        int numBlocks = 8;
        Panel[,] chessBoardPanels = new Panel[numBlocks, numBlocks];
        for (int iRow = 0; iRow < numBlocks; iRow++)
            for (int iColumn = 0; iColumn < numBlocks; iColumn++)
            {
                Panel p = new Panel();
                //set size
                p.Size = new Size(50, 50);
                //set back colour
                p.BackColor = (iRow + (iColumn % 2)) % 2 == 0 ? Color.Black : Color.White;
                //set location
                p.Location = new Point(50 * iRow, 50 * iColumn);
                chessBoardPanels[iRow, iColumn] = p;
                this.Controls.Add(p);
            }

これにより、デザイナーでパネルを作成しなくても、その場でパネルを作成できます。

ただし、間隔を処理するための式に取り組む必要があります。

編集

パネル ブロックの配置/設定方法の例も追加しました。

于 2013-09-11T12:58:37.613 に答える
1

このような 2D 配列を作成するための構文は次のようになります。

Panel[,] chessBoardPanels = new Panel[8, 8];
chessBoardPanels[0, 0] = panel1;
chessBoardPanels[0, 1] = panel2;
chessBoardPanels[0, 2] = panel3;
//...
chessBoardPanels[0, 7] = panel8;
chessBoardPanels[1, 0] = panel9;
//...
于 2013-09-11T12:57:27.293 に答える