【问题标题】:Problem in generating label controls in Windows formsApplication在 Windows 窗体应用程序中生成标签控件的问题
【发布时间】:2010-02-10 14:47:40
【问题描述】:

我已经在 Windows 窗体应用程序中动态创建了图片框...它运行良好... 现在我必须动态生成标签框,标签框将显示在每个图片框的底部,并且必须显示相应的图片框名称... 我该怎么做?给我这个解决方案...

提前谢谢... 我的编码在这里..

           int Left = this.Left+200;
           int Top = this.Top;

           for(int i=0;i<Num_Picbox;i++)
           {
           shapes[i] = new PictureBox();
           shapes[i].Location = new Point(Left,Top);
           Left += 200;
           Top += i + 0;

           shapes[i].Size = new Size(160,160);
           shapes[i].BackColor = Color.Black;
           shapes[i].Visible = true;
           shapes[i].Name = i.ToString();
           shapes[i].BorderStyle = BorderStyle.FixedSingle;

           flowLayoutPanel1.Controls.Add(shapes[i]);
           flowLayoutPanel1.WrapContents = true;
           shapes[i].Click += new EventHandler(PictureBox_Click);
          }

【问题讨论】:

    标签: c# winforms layout


    【解决方案1】:

    我认为最好的方法是创建一个带有图片框和标签的自定义用户控件,然后将它们动态添加到 flowlayoutpanel。使 shape[] 成为自定义控件类型的数组。

    【讨论】:

      【解决方案2】:

      为每张图片创建一个面板,其中包含停靠在Bottom 的标签和停靠在Fill 的图片框。将此面板添加到流程布局面板而不是您的图片框。确保首先将图片框添加到面板的 Controls 集合中,以确保停靠按预期工作。

      shapes[i].Dock = DockStyle.Fill;
      flowLayoutPanel1.Controls.Add(
          new Panel {
              Controls = {
                  shapes[i],
                  new Label {
                      Dock = DockStyle.Bottom,
                      Text = i.ToString()
                  }
              }
          });
      

      【讨论】:

      • 非常感谢!!!它的工作......感谢你的好方法回答......我清楚地理解......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 2017-10-11
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多