C# 如何设置图像索引和填充图像

C# 如何设置图像索引和填充图像,c#,image,winforms,C#,Image,Winforms,我在图片编辑中得到了6幅这样的图片 但是当我禁用第二个和第四个图像的可见性时,它变为空或空白。 我想要的是另一个图像填充空白或像这样的图像(不只是第二个和第四个,只要我想,可见性为false): 我使用的代码是: Bitmap gambr1 = new Bitmap(Properties.Resources.Add_f, 32, 32); Bitmap gambr2 = new Bitmap(Properties.Resources.Edit_f, 32, 32);

我在图片编辑中得到了6幅这样的图片

但是当我禁用第二个和第四个图像的可见性时,它变为空或空白。 我想要的是另一个图像填充空白或像这样的图像(不只是第二个和第四个,只要我想,可见性为false):

我使用的代码是:

Bitmap gambr1 = new Bitmap(Properties.Resources.Add_f, 32, 32);      
Bitmap gambr2 = new Bitmap(Properties.Resources.Edit_f, 32, 32);       
Bitmap gambr3 = new Bitmap(Properties.Resources.Delete_f, 32, 32);        
Bitmap gambr4 = new Bitmap(Properties.Resources.print, 32, 32);      
Bitmap gambr5 = new Bitmap(Properties.Resources.sheet,32,32);        
Bitmap gambr6 = new Bitmap(Properties.Resources.close, 32, 32);        


private void dev12_Load(object sender, EventArgs e)
{
    pictureEdit1.Image = gambr1;
    pictureEdit2.Image = gambr2;
    pictureEdit3.Image = gambr3;
    pictureEdit4.Image = gambr4;
    pictureEdit5.Image = gambr5;
    pictureEdit6.Image = gambr6;

    if ( pictureEdit2.Visible == false)
    {                
        pictureEdit2.Visible = false; 

    }
    if ( pictureEdit4.Visible == false)
    {
        pictureEdit4.Visible = false;          
    }
}
每个位置的

Point a1 = new Point(162,10);
Point b1 = new Point(233,10);
Point c1 = new Point(304,10);
Point d1 = new Point(376,10);
Point e1 = new Point(447,10);
Point f1 = new Point(518,10);`
你可以用一个。这样,当控件不可见时,其他控件将移动并填充空间:

  • 设置
    FlowLayoutPanel
    Padding
    ,以指定容器和内容物之间的距离
  • 设置控件的
    Margin
    ,以指定
    FlowLayoutPanel
    中控件之间的距离
在下面的示例中,我将所有
PictureBox
控件的
Padding
设置为5,将所有
PictureBox
控件的
边距设置为5,然后单击将控件的
Visible
设置为
false
。您可以看到,一旦我使控件不可见,布局就会更改:


另一个选项是,您可以在
面板中
将所有图片框停靠到
左侧
。通过这种方式,当您使其中一个不可见时,其他图像将填充左侧的空间。

您可以使用FlowLayuotPanel。@shad0wk是的,如果我隐藏我想要的图像很容易。但是如果有多个,它会得到这么多的if(条件),作为另一个选项,您可以在
面板中
将所有图片框停靠到
左侧
。这样,当你让其中一个隐形时,其他人也会占据左边的空间。谢谢你的建议。我会努力学习的。该图片是使用panelcontrol1停靠在表单底部的?我应该切换它还是直接使用它?虽然首选
FlowLayoutPanel
,但您也可以
PictureBox
控件的
属性停靠在
面板的
左侧
@RezaAghaei,问题是图片框位于PanelControld的中心,如果我使用的是dock left,那么我就没有必要对此提出疑问-没有冒犯当我说
PictureBox
时,我指的是显示图标的控件。因此,如果它是一个用户控件,它是使用一个面板创建的,面板中有一个picturebox,请将我所说的应用到该控件上。糟糕的是,我认为它仍然在使用我的panelcontrol1。我的panelcontrol停靠在底部窗体上,而我的
picturebox
仍然没有停靠。我首先了解了flowlayoutpanel,谢谢你的码头建议