2009-05-11 6 views
5

Ich möchte eine Win-Form in C# verwenden und seinen Inhalt oder das gesamte Formular in einem Panel anzeigen, das in einem anderen Formular verwendet wird.Können wir ein Panel mit Winform aus einer anderen Winform in C# verwenden?

Können sagen, ich habe eine Form A mit einem Panel Panel_of_A und Form B mit einem Panel Panel_of_B

Ich mag Inhalte Panel_of_A in Panel_of_B angezeigt werden oder Sie können sagen, ich will Panel_of_A in einer anderen Form verwenden.

Oder Sie bieten Hilfe für ein Formular anzuzeigen sagen A in eine Platte auf Formular B.

Hoffnung machte ich u meine Gedanken verstehen ...

Antwort

10

ich einen besseren Weg, dies zu tun ist Erstellen Sie ein Benutzersteuerelement, das dieses Feld enthält, und verwenden Sie es für beide Formulare.

Hier ist ein tutorial how to create User Controls on MSDN.

+0

+1: Du bist direkt vor mir angekommen, dumme langsame Finger. . . –

1

Ich würde vorschlagen, das Panel, das Sie als separate Klasse wiederverwenden möchten, und legen Sie diese auf beide Formulare. Wenn die angezeigten Daten ebenfalls identisch sein müssen, binden Sie sie an ein Geschäftsobjekt, das zwischen den Formularen übergeben werden kann.

4

Erstellen Sie ein Benutzersteuerelement, das die Logik enthält, die Sie replizieren möchten, und fügen Sie an beiden Stellen das neue Benutzersteuerelement ein.

+0

+1 für die richtige Antwort und Ihren Kommentar zu meiner Antwort. ;-) – splattne

2

Wie sieht das zum Anzeigen einer Instanz von FormA in einem Panel auf FormB aus? Das UserControl ist wahrscheinlich der bessere Weg, aber was Sie gefragt haben, ist möglich.

fa = new FormA(); 
fa.TopLevel = false; 
fa.FormBorderStyle = FormBorderStyle.None; 
fa.Dock = DockStyle.Fill; 

fb = new FormB(); 
fb.panel1.Controls.Add(fa); // if panel1 was public 

fa.Show(); 
fb.Show(); 
+0

Dieser hat nicht funktioniert man: $ Ich habe es versucht. – Mobin

+0

Was war das Problem? Ich habe einen schnellen Test zusammengestellt, als ich die Antwort gepostet habe und es hat für mich funktioniert. – xyz

0

Je nach Größe und Umfang der Anwendung, sollten Sie die (kostenlos) Composite UI Application Block

Vom Klappentext berücksichtigen:

Es Praxis bewährt bietet komplexen Smart zu bauen Client-Benutzerschnittstellen basierend auf bekannten Design-Muster wie das Composite-Muster, in , die einfache Benutzeroberfläche Teile können kombiniert werden um komplexe Lösungen zu erstellen, aber gleichzeitig , wodurch diese Teile unabhängig voneinander entwickelt, getestet und bereitgestellt werden können.