C#Windows窗体帮助!没有显示面板
我必须用C#窗口的形式做一个棋盘,上面有面板。我有一个按钮,两个文本框(用于设置列和行的数量)和一个大面板,我将在其中放置小窗格 这是按钮单击事件:C#Windows窗体帮助!没有显示面板,c#,winforms,panel,C#,Winforms,Panel,我必须用C#窗口的形式做一个棋盘,上面有面板。我有一个按钮,两个文本框(用于设置列和行的数量)和一个大面板,我将在其中放置小窗格 这是按钮单击事件: private void button1_Click(object sender, EventArgs e) { int x, y, width, height, colors=0; Panel paneln; rows = Convert.ToInt32(t
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;
}
private void按钮1\u单击(对象发送者,事件参数e)
{
整数x,y,宽度,高度,颜色=0;
小组讨论小组;
行=Convert.ToInt32(textBox1.Text);
columns=Convert.ToInt32(textBox2.Text);
高度=面板1.Size.height/行;
宽度=面板1.Size.width/列;
x=面板1.位置x;
y=面板1.位置。y;
对于(inti=0;i好的,我算出了!
我在做那件事
paneln.BringToFront();
panel1.SendToBack();
在将paneln添加到表单之前,它无法工作。您缺少:this.Controls.Add(paneln)这会将面板添加到表单中。使用“绘制”控件是一种疯狂的开销,完全没有必要。只需使用父面板的绘制事件,并通过图形绘制棋盘。填充矩形
。调用面板。在需要重新绘制棋盘时(例如,当发生移动时)使其无效@jdweng我怎么会错过最后一个?当i=3和k=3时,循环是perfomed@GyörgyKőszeg这是我们老师说的,这是第一个Windows窗体作业,我必须这样做:(面板不够大。是否要将新面板添加到窗体或面板1?您正在将新面板添加到此窗体或面板1,我不确定是否为窗体或面板1。问题是x&y的起始值。不应使用面板1的位置。)。