当我尝试为包含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];
答案 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中的代码,即可了解在设计时设置控件时如何为控件生成代码。