簡體   English   中英

C# Windows 窗體幫助! 面板未顯示

[英]C# Windows Form help! A panel is not displaying

我必須在帶有面板的 C# windows 窗體中做一個棋盤。 我有一個按鈕、兩個文本框(用於設置列數和行數)和一個大面板,我將在其中放置小面板。

這是按鈕單擊事件:

private void button1_Click(object sender, EventArgs e)
        {
            int x, y, width, height, colors=0;
            Panel paneln;

            rows = Convert.ToInt32(textBox1.Text);
            columns = Convert.ToInt32(textBox2.Text);

            height = panel1.Size.Height / rows;
            width = panel1.Size.Width / columns;
            x = panel1.Location.X;
            y = panel1.Location.Y;

            for (int i=0;i<rows;i++)
            {
                for(int k = 0;k<columns;k++)
                {
                    paneln = new Panel();
                    paneln.Location = new Point(x, y);
                    paneln.Size = new Size(width, height);

                    if (colors % 2 == 0)
                        paneln.BackColor = Color.Black;
                    else
                        paneln.BackColor = Color.White;
                   
                    paneln.BringToFront();
                    panel1.SendToBack();
                    this.Controls.Add(paneln);

                    x += width;
                    colors++;
                }
                x= panel1.Location.X;
                y += height;
                if (columns % 2 == 0) colors++;
            }
            button1.Enabled = false;
        }

它工作正常,但如果列值是偶數,則不會顯示最后一個面板(右下角)。

例如,行 = 4 和列 = 4 我得到這個:

體重

白銀

體重

WBW

我試圖強制內部 for 在最后一行再執行一個循環,但隨后它放置了兩個面板,這實際上是有道理的,並使我認為它實際上創建了面板對象,但不知何故它沒有顯示。

有什么建議嗎? 謝謝!

好吧,我想通了! 我在做

paneln.BringToFront();
panel1.SendToBack();

在將面板添加到表單之前,它不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM