2017-03-11 8 views
0

Sehr geehrte Genie Entwickler, Ich entwickle ein Programm mit ein paar Formen in C#. Ich muss ein Bildfeld in einer Form namens "Sub_Winding1" erstellen, während ich in einer anderen Form bin, indem ich dort einen Knopf drücke.Wie senden Sie ein Objekt in einem Formular erstellen, Bestellung von einem anderen Formular in C#?

Ich versuchte dies aber es hat nicht funktioniert:

  PictureBox CopyPic1 = new PictureBox() 
      { 
       Name = PicBox_Name, 
       Image = Image.FromFile(@"C:\C#\...\Image\textura.jpg"), 
       SizeMode = PictureBoxSizeMode.CenterImage 
      }; 
      CopyPic1.Location = new Point(X_Location, Y_Location); 
      CopyPic1.Size = new System.Drawing.Size(X_Size, Y_Size); 
      CopyPic1.BackColor = PictureBox_Color; 
      Sub_Winding1 ThisForm = new Sub_Winding1(); 
      ThisForm.Controls.Add(CopyPic1); 

Ich schätze Sie wäre, wenn Sie eine Lösung finden. Vielen Dank.

+0

Es sieht so aus, als hätten Sie das Formular nicht angezeigt. Versuchen Sie 'ThisForm.Show()' – smead

Antwort

0

Sie sind nicht die zweite Form überall öffnen, sollten Sie Show() Inorder rufen Sie die Steuerung an die zur Anzeige user.just diesen Code versuchen,

Sub_Winding1 ThisForm = new Sub_Winding1(); 
ThisForm.Controls.Add(CopyPic1); 
ThisForm.Show(); 
+0

, aber ich möchte nicht das Formular anzeigen, tatsächlich ist das Zielformular in einem Panel in einem anderen Hauptformular. Nach diesem Code schließe ich das aktuelle Formular und das Zielformular wird angezeigt, aber dort ist keine Picturebox! –

+0

ohne das Formular anzuzeigen, wie können Sie die Steuerelemente im Inneren anzeigen? – Sajeetharan

+0

Sie möchten es auf dem gleichen Formular haben? – Sajeetharan

0

Basierend auf Ihre Kommentare, ich würde sagen, Problem ist, diese Zeile:

Sub_Winding1 ThisForm = new Sub_Winding1(); 

Dies schafft eine neue Instanz von Sub_Winding1. Aber du sagst, du hast bereits eine Instanz irgendwo, die bereits auf andere Weise gezeigt wird.

Sie müssen einen Verweis auf dieses Formular erhalten, anstatt einen neuen zu erstellen, z.

Sub_Winding1 ThisForm = GetFormFromSomeWhere(); //Up to you to write GetFormFromSomewhere 

könnte wie folgt aussehen, wenn Sie es mit dem gleichen Namen eingebettet haben:

Sub_Winding1 ThisForm = SomeOtherForm.Sub_Winding1; 

Sie könnten das Unterformular öffentlich machen müssen.

+0

Danke für deine Antwort, aber ehrlich gesagt habe ich es nicht verstanden! –

0

tatsächlich, ist dieser Teil des Codes hat kein Problem:

 PictureBox CopyPic1 = new PictureBox() 
     { 
      Name = PicBox_Name, 
      Image = Image.FromFile(@"C:\C#\...\Image\textura.jpg"), 
      SizeMode = PictureBoxSizeMode.CenterImage 
     }; 
     CopyPic1.Location = new Point(X_Location, Y_Location); 
     CopyPic1.Size = new System.Drawing.Size(X_Size, Y_Size); 
     CopyPic1.BackColor = PictureBox_Color; 

aber ich weiß nicht, wie dieses Bild Box auf die andere Form geben, die bereits offen ist und hinter dieser Form !

Verwandte Themen