2016-06-19 2 views
0

Ich möchte eine App machen, die INI-Datei verwendet, um neue FlowLayoutPanels zu speichern, was ich nicht arbeiten kann, ist, dass ich einen EventHandler machen möchte wenn ich eine PictureBox Doubleclick, die im Inneren, dass neue Flowlayoutpanel geschaffen ist, dass die eigene FlowLayoutPanel.Here löschen ist ein Code:Wie kann ich andere Objekttypen von einer Funktion zu einer anderen Funktion senden mit EventHandler

private void Function(object sender, EventArgs e) 
    { 
     FlowLayoutPanel flP = new FlowLayoutPanel(); 
     PictureBox picB = new PictureBox(); 
     Label laB = new Label(); 
     flP.Controls.Add(picB); 
     flP.Controls.Add(laB); 
     flowLayoutPanel1.Controls.Add(flP); 
     picB.DoubleClick += picB_DoubleClick; 
    } 

    private void picB_DoubleClick(object sender, EventArgs e) 
    { 
     FlowLayoutPanel flp = (FlowLayoutPanel)sender; 
     flp.Dispose(); 
    } 
+0

Welche Probleme haben Sie genau? Sie können Objekte in Funktionen übergeben. – Kirk

+0

Wenn ich das ausführe, wenn ich versuche, dieses FlowLayoutPanel zu disponentieren, erhalte ich die Fehlermeldung, dass "Objekt des Typs 'System.Windows.Forms.PictureBox' nicht in den Typ 'System.Windows.Forms.FlowLayoutPanel' umgewandelt werden kann." – Toody

Antwort

1

Sie erhalten diesen Fehler, da der object sender Parameter des Ereignisses Klick tatsächlich das picturebox Objekt ist. Sie versuchen, die Picture-Box als Flow-Layout-Panel zu fungieren. Das kannst du nicht tun. Ein Flowlayoutpanel ist kein PictureBox-Objekt und erbt nicht von Picturebox.

Was Sie wahrscheinlich tun möchten, kann erreicht werden, indem Sie den Absender als Bildbox auslegen: var pb = (picturebox) sender; und dann die Eltern der Picturebox var flp = pb.parent as flowlayoutpanel; bekommen und dann flp entsorgen. flp.dispose();

Ich tippe diese Antwort auf meinem iPhone ohne Zugriff auf VS, ich bin nicht sicher, die Folgen der Beseitigung des Elternobjekts von einem Ereignis eines untergeordneten Objekts.

+0

Das hat funktioniert, danke für die Antwort. Ich habe ein paar Dinge, die ich beheben muss, ich werde sie später hier veröffentlichen. – Toody

+0

@CodyGray Wenn Sie die Eltern entsorgen, werden die Kinder nicht Müll gesammelt? – Michael

+0

@CodyGray Okay, ja, ich habe diese zwei separaten Konzepte gemischt. Aber auch die Eltern sollten die Kinder entsorgen. Es wird sich zuerst und dann die Kinder entsorgen lassen. Da das picturebox click -Ereignis nicht der Bereich sowohl der TableLayoutPanel als auch der Picturebox ist, denke ich, dass alles * gut funktionieren sollte? http://StackOverflow.com/a/4894618/3653277 – Michael

Verwandte Themen