【问题标题】:Adding multiple Pictureboxes or labels with text and images添加多个带有文本和图像的图片框或标签
【发布时间】:2020-05-22 21:11:37
【问题描述】:

我想要多张带有文字和图像的卡片,或者只填充红色或蓝色。 this is how the form should look like。所以我正在考虑创建多个图片框或标签,但问题是图片框重叠。

private void button1_Click(object sender, EventArgs e)
    {
        Createlabels();

    }
private void Createlabels()
    {
        var n = 5; 
        PictureBox[] p = new PictureBox[n];
        for (int i = 0; i < n; i++)
        {
            p[i] = new PictureBox();
            p[i].Image = Image.FromFile(@"C:\Users\sania\Desktop\c sharp project\red1.Png");

            p[i].SizeMode = PictureBoxSizeMode.Zoom;
            p[i].Left = i * 100;
            this.Controls.Add(p[i]);
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Createlabels2();
    }
    private void Createlabels2()
    {
        var n = 10; 
        PictureBox[] q = new PictureBox[n];
        for (int j = 0; j < n; j++)

        {
            q[j] = new PictureBox();
            q[j].Image = Image.FromFile(@"C:\Users\sania\Desktop\c sharp project\blue.Png");
            q[j].SizeMode = PictureBoxSizeMode.Zoom;
            q[j].Left = j * 100;
            this.Controls.Add(q[j]);
        }
    }
}

【问题讨论】:

  • 首先我会创建一个主面板并将图片框放在面板中。动态添加图片框与动态添加按钮相同。在以下帖子中查看我的解决方案:stackoverflow.com/questions/37165402/…
  • 您能否详细说明一下,我不清楚该怎么做
  • 您必须更具体地说明不清楚的地方。我发布的按钮示例就是一个很好的例子。
  • 我实际上无法理解如何使用面板。例如,我使用两种不同类型的按钮而不是使用图片框,因为我无法将文本输入到图片框。我想要的是显示 2 种不同类型的卡片,就像我之前在图片中提到的那样。但问题是它相互重叠,比如第一个按钮创建 10 个框,下一个按钮也创建 10 个,并且它们相互重叠
  • 我通常创建:public class MyButton:按钮并添加属性,这样你就有了一个类型的按钮。或者,您可以创建一个带有图片框和标签的迷你面板。然后将 20 个迷你面板添加到主面板。

标签: c#


【解决方案1】:

这是我到目前为止所做的代码my output 但它是should look like this one

    private void button1_Click(object sender, EventArgs e)
    {
        var n = 12;
        Button[] p = new Button[n];
        for (int i = 0; i < n; i++)
        {
            p[i] = new Button();
           p[i].Image = Image.FromFile(@"C:\Users\sania\Desktop\c sharp project\red1.Png");



            p[i].Text = i + " Reserved";

           p[i].Left = i * 100;
            this.Controls.Add(p[i])
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {

        Createlabels2();
    }
    private void Createlabels2()
    {
        var n = 12;
        Button[] q = new Button[n];
        for (int j = 0; j < n; j++)
        {
            q[j] = new Button();
            q[j].Image = Image.FromFile(@"C:\Users\sania\Desktop\c sharp project\blue.Png");


            //"ImagePanel" is a TableLayoutPanel
            q[j].Text = j + 10 + " Booked";
            q[j].Top = j * 100;
            this.Controls.Add(q[j]);
        }

    }

}

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2016-11-13
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多