Beliebig viele Forms als Objekte erzeugn && PopUp

hallo

Wie kann ich denn das machen, daß ich eine Form als Objekt erzeuge?

daß man zum Beispiel auf einen Button clickt und anschließend kommt eine neue Form…

das ganze soll so oft gehen wie man auf den Button clickt.

bisher hab ich immer nur Forms fix und fertig vordefiniert… aber es müsste doch gehen daß ich zB eine Klasse „Messgerät“ erstelle, und daß mir beim erstellen eines Objektes dieser Klasse auch eine neue GUI auch erzeugt wird.

Noch cooler wärs wenn man über ein PopUp menü Objekte zu dieser Klasse erzeugen könnte… ich hab ein bißchen gegoogelt, aber ich hab keine gscheiten PopUpMenüs gefunden. Habz ihr vielleicht eine Idee obs als Steuerelement oder sowas vorgefertigte PopUp Menüs gibt!

ich danke euch vielmals

mfg Patrick

Moien,

mit den forms gehts ganz einfach mit:

Set openForm = New frmTabEntities
openForm.Show
openForm.SetFocus

wobei du openform als :

Public openForm As Form

oder

Public openForm As frmTabEntities

deklarieren kannst.

Beachte dabei aber, daß Verweise ala frmTabEntities.Button1 nicht mehr funzen sondern du den verweis auf die Instance machen musst!

Menues kannst du mit der Klasse popuopmenue erstellen ala

Private Sub tabMeldung_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuSelectModify, 4
Exit Sub
End If
End Sub

Das anzuzeigende Popupmenue muss halt im Menueeditor erstellt werde…

Gruß

Bernd

danke auf jeden Fall einmal, das hat mir schon sehr geholfen, aber
darf ich dich nochmal stören?

hab da nämlich durch das erzeugen der neuen Instanz eine neues Problem bekommen. in der Zeile ComboboxInit will ich die Funktion aufrufen un die Instanz frm_second als Übergabewert mitgeben. frm_second ist aus frm_main erzeugt worden…
trotzdem sagt der Kompiler, daß die Typen unverträglich sind…
und ich check ned wieso! ich hätt gesagt es ist der gleiche Typ…

Public Sub btn_NewMessklasse_Click()

Dim frm_second As New frm_main
’ Load frm_second
frm_second.Show
ComboboxInit (frm_second)
’ frm_second.SetFocus
End Sub

Private Sub ComboboxInit(ByVal frame As frm_main)

Dim varZeile As Long
For varZeile = 0 To 20 Step 1
frame.cmbZeile.AddItem varZeile
Next varZeile
Dim varSpalte As Integer
For varSpalte = 1 To 20 Step 1 'varSpalte = 97 To 122 Step 1
frame.cmbSpalte.AddItem varSpalte ’ Chr(varSpalte)
Next varSpalte
End Sub

brauchst nicht mehr antworten

trotzdem danke