图片框的位置和动态创建用户控件

时间:2012-08-15 08:47:16

标签: c#

当我尝试为包含PictureBox和ImageList的用户控件设置位置时,只有部分图像可见!?怎么了?对于位置,我猜像素是我可以使用的?

pictureBox1.Location = new Point(10, 20);
pictureBox1.Image = imageList1.Images[3];

然后我也想知道如何在运行时创建几个用户控件,比如我上面描述的用户控件,就像某种动态创建一样!?我想为每个用户控件设置不同的图像和位置。此创建应该在另一个用户控件内部进行,并且包含一个大面板。我不知道我应该怎么做以及如何在两个用户控件之间进行通信?就像将值传递给方法和构造函数这些用户控件一样?!

帮助解决这个问题!谢谢!

编辑:我现在正在尝试使用此代码,但我找不到它无效的原因?

pictureBox1.Size = new System.Drawing.Size(79, 91);
pictureBox1.Location = new Point(10,10);
pictureBox1.Image = imageList1.Images[3];

我仍然只获得部分图片。并且奇怪的是为什么下面的代码可以工作并显示100%的图像?

pictureBox1.Image = imageList1.Images[2];

2 个答案:

答案 0 :(得分:1)

PictureBox[] pics = new PictureBox[10];

        int size = 20;
        for (int i = 0; i < 10; i++)
        {
            pics[i] = new PictureBox();
            pics[i].Size = new System.Drawing.Size(size, size);
            pics[i].Location = new Point(size * 2 * i + 10, size);
            //pics[i].Image = image
            pics[i].BackColor = Color.AliceBlue;
            pics[i].Parent = this;
        }

对于2D行图片框,您可以使用嵌套for循环:

PictureBox[,] pics = new PictureBox[10,10];

        int size = 20;
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                pics[i, j] = new PictureBox();
                pics[i, j].Size = new System.Drawing.Size(size, size);
                pics[i, j].Location = new Point(size * 2 * i + 10, size * 2 * j + 10);
                //pics[i,j].Image = image
                pics[i, j].BackColor = Color.AliceBlue;
                pics[i, j].Parent = this;
            }
        }

答案 1 :(得分:0)

查看PictureBox上的SizeMode属性,您可能需要将其设置为StretchImage以使图像分辨率适合您的PictureBox大小。

至于动态创建控件,是的,您可以,只需了解designer.cs中的代码,即可了解在设计时设置控件时如何为控件生成代码。