Forum: PC-Programmierung Visual Basic


von triple2448 (Gast)


Lesenswert?

Hallo

ich habe in visual basic eine kleine Oberfläche programmiert
nur da der Code mittlerweile ziemlich unübersichtlich wird
möchte ich einige Teile "auslagern". Bei Funktionen habe ich da
keine Probleme nur ich weiss nicht wie ich Ereignisse auslagern soll.

Beispiel: Wie kann ich alle Ereignisse die mit einer Toolbar
zusammenhängen wie
Private Sub ToolBar1_ButtonClick(...) Handles ToolBar1.ButtonClick
in ein Modul einfügen, wobei sich Toolbar1 in Form1 befindet.

Ich habe es schon mit:
    Dim test As New Form1()
    Public WithEvents test1 As New Form1()
versucht. So konnte ich die Ereignisse von Form1 auswählen, die
aber nicht auslösten.


Gruß

triple2448

von der mechatroniker (Gast)


Lesenswert?

Mit

Public WithEvents test1 As New Form1()

erstellst du eine neue Instanz der Form1. Die hat natürlich auch
Events, die lösen aber nicht dann aus, wenn die für die Original-Form
auslösen.
Hab grade kein VB zum Testen da, aber probier mal

Public WithEvents test1 As Form1

und irgendwo an geeigneter Stelle (z.B. Init-Routine, falls du sowas
hast):

Set test1 = Form1

von triple2448 (Gast)


Lesenswert?

das mit dem test1 = Form1 geht nicht bzw es
kommt eine Fehlermendung. Das Set wird "wegoptimiert"
und Form1 ist vom Typ type und kann nicht zugewiesen werden.

Als Notlösung habe ich jetzt mit #region und #end region zumindest die
Möglichkeit bestimmte Teile auszublenden.

Gruß

triple2448

von Toni (Gast)


Lesenswert?

Probier mal 'Form1.ToolBar1_ButtonClick(...)'

Toni

von triple2448 (Gast)


Lesenswert?

Hab vergessen das ich .net verwende.
das Toolbar1_ButtonClick ist nur der Name der Funktion und hat keine
Bedeutung. Das Ereignis wird durch die Handels Anweisung beschrieben
(s.o.)
So, wie ich es oben gemacht habe kommt immerhin keine Fehlermeldung,
nur das Programm beschwert sich auch nicht wenn ich z.B.
Form1.Sizechanged in einem Modul wie oben benutze und gleichzeitig
in Form1.vb.

Gruß

Triple2448

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.