1

私は主に 8 列と 9 行の TableLayoutPanel で構成される Windows フォーム アプリに取り組んでいます。次のように各セルを埋めることができました。

for (int row = 0; row < TableLayoutPanel.RowCount; row++) {
    for (int column = 0; column < TableLayoutPanel.ColumnCount; column++) {
        PictureBox pictureBox = new PictureBox();
        pictureBox.BackColor = Color.Blue;
        TableLayoutPanel.Controls.Add(pictureBox, column, row);
        pictureBox.Dock = DockStyle.Fill;
        pictureBox.Margin = new Padding(1);
}

ただし、このメソッドは上から始まり、次のように左から右に下ります。

1 2 3
4 5 6

私の目的は、次のように TableLayoutPanel を埋めることです。

6 5 4
1 2 3

これが可能かどうかはわかりませんが、この方法で TableLayoutPanel セルを埋める方法はありますか?

4

2 に答える 2

1

心配しないでください、私はそれを行う方法を考え出しました。私がしたことは、一番下の行TableLayoutPanel(私の場合は行 = 8) から始めて、そこから作業を進めることでした。次に、行の値が奇数か偶数かを判断し、その場合は方向を変更します。これが解決策です。

for (int row = TableLayoutPanel.RowCount-1; row >= 0; row--) {
    if (row % 2 == 0) { //if even
        for (int column = 0; column < TableLayoutPanel.ColumnCount; column++) {
            PictureBox pictureBox = new PictureBox();
            pictureBox.BackColor = Color.Blue;
            TableLayoutPanel.Controls.Add(pictureBox, column, row);
            pictureBox.Dock = DockStyle.Fill;
            pictureBox.Margin = new Padding(1);
    } else { 
        for (int column = TableLayoutPanel.ColumnCount-1; column >= 0; column--) {
            PictureBox pictureBox = new PictureBox();
            pictureBox.BackColor = Color.Blue;
            TableLayoutPanel.Controls.Add(pictureBox, column, row);
            pictureBox.Dock = DockStyle.Fill;
            pictureBox.Margin = new Padding(1);
    }
}
于 2013-05-17T08:06:02.877 に答える