Hallo,
der "Unsterbliche" hat im Prinzip recht. Ich habe aber Zweifel, ob das Vorgehen wirklich so sinnvoll ist. Wenn Du vorher weißt, dass Du ein Formular mit einer ListBox und einem Button-Click haben willst, wobei der Button etwas in der ListBox machen soll, warum programmierst Du das dann nicht schon vorher innerhalb von Form2?
Das neue Formular selbst kann natürlich zur Laufzeit dynamisch erzeugt werden. Es ist auch denkbar, dass seine Bestandteile dynamisch erstellt werden. Aber alles, was zu einer Klasse gehört, sollte auch Teil dieser Klasse sein. Wenn das unbedingt dynamisch sein muss, dann packe es in das FormLoad-Ereignis oder in eine öffentliche Init-Methode; stoße das von Form1 aus an, aber erledige es möglichst vollständig innerhalb des neuen Formulars.
Beispiel: Ein Auto-Transporter (ist also auch eine Ableitung der Klasse "Auto") transportiert mal VW, mal BMW. Soll der Transporter die Ausstattung der transportierten Autos bestimmen? Nein, das ist Sache der Klasse VW bzw. BMW. Der Transporter sagt also lediglich dem Hersteller: "Bereite die Autos zum Transport vor", sonst steuert er nichts.
Gruß und Frohe Weihnachten! Jürgen