Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0336: Container auf ein anderes Formular setzen

 von 

Beschreibung 

In diesem Beispiel wird gezeigt, wie Frames anderer Forms auf ein Hauptform umgesetzt werden können. Diese Methode findet, unter Verzicht auf MDI, Anwendung bei unterschiedlicher Masken in ein und dem selben Fenster. Somit kann jede Maske, zwecks Übersichtlichkeit, auf einem eigenem Form gestaltet und gehandelt werden, da die Events nach wie vor beim ursprünglichen Träger verbleiben.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

SetParent

Download:

Download des Beispielprojektes [3,75 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Bildfeld-Steuerelement "Picture1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Schaltfläche "Command3"
' Steuerelement: Schaltfläche "Command2"

Option Explicit

Private Declare Function SetParent Lib "user32" (ByVal _
        hWndChild As Long, ByVal hWndNewParent As Long) _
        As Long

Private Sub Command1_Click()
  Call SetParent(Form2.Frame1.hWnd, Picture1.hWnd)
End Sub

Private Sub Command2_Click()
  Call SetParent(Form3.Frame1.hWnd, Picture1.hWnd)
End Sub

Private Sub Command3_Click()
  Call SetParent(Form4.Frame1.hWnd, Picture1.hWnd)
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Unload Form2
  Unload Form3
  Unload Form4
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'--------- Anfang Formular "Form2" alias Form2.frm  ---------
' Steuerelement: Rahmensteuerelement "Frame1"
' Steuerelement: Schaltfläche "Command1" auf Frame1
Private Sub Command1_Click()
   MsgBox "Form2"
End Sub
'---------- Ende Formular "Form2" alias Form2.frm  ----------
'--------- Anfang Formular "Form3" alias Form3.frm  ---------
' Steuerelement: Rahmensteuerelement "Frame1"
' Steuerelement: Schaltfläche "Command1" auf Frame1
Private Sub Command1_Click()
   MsgBox "Form3"
End Sub
'---------- Ende Formular "Form3" alias Form3.frm  ----------
'--------- Anfang Formular "Form4" alias Form4.frm  ---------
' Steuerelement: Rahmensteuerelement "Frame1"
' Steuerelement: Schaltfläche "Command1" auf Frame1
Private Sub Command1_Click()
   MsgBox "Form4"
End Sub
'---------- Ende Formular "Form4" alias Form4.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Andreas am 01.08.2007 um 11:25

Hallo

Der Tipp ist super. Nur wie funktioniert das unter vb.net? Einzelne Steuerelemente auf diese Weise zu "importieren" geht relativ einfach, nur kann man auf diese weise nicht das gesamte formular laden und auch deren inhalt.

Also ich möchte gerne ein mdi formular haben. auf der linken seite soll die navigation stattfinden und auf der rechten seite sollen die entsprechenden form´s aufgerufen werden. eben wie man eine form in ein mdi formular lädt, nur kann man das mdi formular leider nicht teilen! oder geht das doch? und wenn ja wie?!

für eure hilfe danke ich euch schon jetzt.

gruß andy

Kommentar von Andreas Lehmann am 31.07.2007 um 16:19

Hallo.


Super Tipp mit dem Container auf ein anderes Formular setzen. Funktioniert das auch unter VB.Net und wenn ja wie, weil ich bin neuling in vb.net...

MfG

Andreas

Kommentar von tokio am 08.03.2007 um 19:12

find kinen trost

Kommentar von Timo am 21.09.2006 um 21:21

Super Tipp. Geht neu in .NET auch als Option bei jedem Objekt.

Kommentar von Andre am 01.12.2005 um 17:09

Hallo
Wie kann man die PictureBox mit dem Bild speichern??
Mit der Funktion SavePicture funzt es nicht! Die Datei enthält nur die "leer" PictureBox.
Gruß
André

Kommentar von Cedric am 14.09.2001 um 06:03

Ein einfacher Trick mit viel Nutzen!
Optimal für den Fall das jemand sich einen sog. "Wizard" für seine Anwendung schreiben möchte ...