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

C# 图片框的位置和用户控件的动态创建,c#,C#,当我试图为包含PictureBox和ImageList的用户控件设置位置时,只有部分图像可见!?怎么了?对于位置,我想像素是我可以使用的 pictureBox1.Location = new Point(10, 20); pictureBox1.Image = imageList1.Images[3]; 然后我还想知道如何在运行时创建几个用户控件,就像我上面描述的那样,就像某种动态创建一样!?我想为每个用户控件设置不同的图像和位置。此创建应该在另一个用户控件中进行,该控件包含一个大面板。我不确

当我试图为包含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];

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


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

查看PictureBox上的SizeMode属性,您可能需要将其设置为StretchImage,以便将图像分辨率与PictureBox大小相匹配

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;
        }
至于动态创建控件,是的,您可以,只要在designer.cs中查看代码,查看在设计时设置控件时如何为控件生成代码。

PictureBox[]pics=new PictureBox[10];
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;
        }
int size=20; 对于(int i=0;i<10;i++) { pics[i]=新的PictureBox(); pics[i].Size=新系统.Drawing.Size(Size,Size); pics[i]。位置=新点(尺寸*2*i+10,尺寸); //图片[i]。图像=图像 pics[i].BackColor=Color.AliceBlue; pics[i].Parent=this; }
对于二维图片框行,可以使用嵌套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;
            }
        }
PictureBox[,]pics=新的PictureBox[10,10];
int size=20;
对于(int i=0;i<10;i++)
{
对于(int j=0;j<10;j++)
{
pics[i,j]=新的PictureBox();
pics[i,j].Size=新系统.绘图.尺寸(尺寸,尺寸);
pics[i,j]。位置=新点(大小*2*i+10,大小*2*j+10);
//pics[i,j].图像=图像
pics[i,j].BackColor=Color.AliceBlue;
pics[i,j].Parent=this;
}
}
PictureBox[]pics=新的PictureBox[10];
int size=20;
对于(int i=0;i<10;i++)
{
pics[i]=新的PictureBox();
pics[i].Size=新系统.Drawing.Size(Size,Size);
pics[i]。位置=新点(尺寸*2*i+10,尺寸);
//图片[i]。图像=图像
pics[i].BackColor=Color.AliceBlue;
pics[i].Parent=this;
}
对于二维图片框行,可以使用嵌套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;
            }
        }
PictureBox[,]pics=新的PictureBox[10,10];
int size=20;
对于(int i=0;i<10;i++)
{
对于(int j=0;j<10;j++)
{
pics[i,j]=新的PictureBox();
pics[i,j].Size=新系统.绘图.尺寸(尺寸,尺寸);
pics[i,j]。位置=新点(大小*2*i+10,大小*2*j+10);
//pics[i,j].图像=图像
pics[i,j].BackColor=Color.AliceBlue;
pics[i,j].Parent=this;
}
}