2016-08-02 12 views
1

Ich habe 6 Bilder wie dies in Bild bearbeitenwie Bildindex setzen und das Bild

image

aber füllen, wenn ich die Sichtbarkeit der 2. und 4. Bild deaktivieren wurde es leer oder leer. Was ich will, ist das andere Bild des leeren oder das Bild wie folgt füllen (nicht nur 2. und 4., Sicht falsch, wenn ich will): image

der Code ich benutze, ist:

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;   
    } 
} 

für jede Position ist

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);` 
+3

Sie können ein FlowLayuotPanel verwenden. –

+0

@ shad0wk ja, wenn ich verstecke ich will Bild ist einfach. aber was ist, wenn es so viele multipliziert hat, wenn (Bedingung) –

+0

Auch als eine andere Option können Sie alle Bildfelder an 'Left' in einem' Panel' andocken. Auch wenn Sie einen von ihnen unsichtbar machen, füllen andere den Raum nach links. –

Antwort

1

Sie können eine FlowLayoutPanel verwenden. Auf diese Weise, wenn ein Steuer ist unsichtbar, andere Steuerverschiebungen und füllt den Raum:

  • Set Padding von FlowLayoutPanel den Abstand zwischen dem Behälter und Inhalt angeben.
  • Legen Sie Margin der Steuerelemente fest, um den Abstand zwischen den Steuerelementen in FlowLayoutPanel anzugeben.

Im folgenden Beispiel, habe ich Padding von FlowLayoutPanel bis 5 und Margin aller PictureBox Kontrollen 5 und stellen Sie dann Visible der Kontrollen false durch Klick. Sie sehen, sobald ich ein Steuerelement unsichtbar, die Layout-Änderungen vornehmen:

enter image description here

auch als eine weitere Option können Sie Dock alle Bildfelder zu Left in einem Panel. Auch wenn Sie einen von ihnen unsichtbar machen, füllen andere den Raum nach links.

+0

Sie falsch geschrieben "Layout" ... – Nyerguds

+0

@Nyerguds Danke, korrigiert. –

+0

danke für den Vorschlag. Ich werde versuchen, es zu lernen. dieses Bild ist Dock im unteren Teil der Form mit panelcontrol1 sollte ich es wechseln oder einfach benutzen? –