C# 标签列表不显示在图片框中

C# 标签列表不显示在图片框中,c#,label,C#,Label,我对VisulaStudio中的标签有问题。 我使用的VisualStudio版本是2012年 问题是,我需要显示网格并标记线。我编写的代码与类似问题的解决方案完全相同。它不会给我任何编译器错误,但标签仍然不会显示在pictureBox中 private void aResize() { Size clientSize = this.ClientSize; int hToDraw, wToDraw; hToDraw = clientSize.Height

我对VisulaStudio中的标签有问题。 我使用的VisualStudio版本是2012年

问题是,我需要显示网格并标记线。我编写的代码与类似问题的解决方案完全相同。它不会给我任何编译器错误,但标签仍然不会显示在pictureBox中

private void aResize()
{
       Size clientSize = this.ClientSize;
       int hToDraw, wToDraw;
       hToDraw = clientSize.Height - 2 * marginOfTab;
       wToDraw = clientSize.Width - 2 * marginOfTab;
       tabControl1.Size = new Size(wToDraw, hToDraw);
       piB1.Size = new Size(wToDraw, hToDraw);
       piB1.Image = new Bitmap(piB1.Size.Width, piB1.Size.Height);
       using (Graphics g = Graphics.FromImage(piB1.Image))
       {
           g.FillRectangle(new SolidBrush(Color.LightGray), 0, 0, W, H);
           Pen gridPen = new Pen(Color.White, 1f);
           int hDrawingStep = hToDraw / 10 -1;
           int wDrawingStep = wToDraw / 10 -1;
           for (int local = 1; local < 11; local++)
           {
           g.DrawLine(gridPen, 0,  hDrawingStep*local, wToDraw, hDrawingStep*local);     //horizontal axix
           g.DrawLine(gridPen, wDrawingStep*local, 0, wDrawingStep*local , hToDraw);     //vertical axis
           Label localLabel = new Label();
           localLabel.Name = "la" + local;
           localLabel.Visible = true;
           localLabel.Text = (local*100).ToString();
           localLabel.Location = new Point((int)local*hDrawingStep, (int)10);
           labelList.Add(localLabel);
           }
       }
}
private void aResize()
{
Size clientSize=this.clientSize;
int hToDraw,wToDraw;
hToDraw=客户尺寸.高度-2*marginOfTab;
wToDraw=客户端大小.Width-2*marginOfTab;
tabControl1.Size=新尺寸(wToDraw、hToDraw);
piB1.尺寸=新尺寸(wToDraw、hToDraw);
piB1.Image=新位图(piB1.Size.Width,piB1.Size.Height);
使用(Graphics g=Graphics.FromImage(piB1.Image))
{
g、 FillRectangle(新的SolidBrush(颜色为浅灰色),0,0,W,H);
钢笔网格笔=新钢笔(颜色:白色,1f);
int hdrawinstep=hToDraw/10-1;
int wdrawinstep=wToDraw/10-1;
for(int local=1;local<11;local++)
{
g、 绘图线(网格笔,0,hdrawinstep*local,wToDraw,hdrawinstep*local);//水平轴
g、 绘图线(网格笔,wDrawingStep*local,0,wDrawingStep*local,hToDraw);//垂直轴
Label localLabel=新标签();
localLabel.Name=“la”+本地;
localLabel.Visible=true;
localLabel.Text=(local*100).ToString();
localLabel.Location=新点((int)local*hdrawinstep,(int)10);
添加(localLabel);
}
}
}

上面代码中未声明的所有变量都在前面声明。我不想贴得太多。谢谢您的建议。

您没有为您的
localLabel
设置任何父项,因此如何呈现它?在将
localLabel
添加到
labelList
之前,请尝试以下操作:

//...
localLabel.Parent = piB1;
labelList.Add(localLabel);

什么是标签列表?您只需将标签添加到
标签列表
,那么它们如何显示在您的pictureBox上呢?@King Kong labelList是一个
列表
。我不明白。为什么不展示呢?我设置
localLabel.Visible=true
。对于将来阅读此问题的人来说,@King Kong的答案非常有效,但我的代码中还有另一个错误。您还需要指定标签的.Size参数。