[英]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.