2016-04-08 6 views
-2

Ich bin ein Anfänger mit VB.Net. Ich habe ein Formular und ich muss die Ereignisse aller Steuerelemente in einem Formular behandeln, indem Sie ein externes Klassenmodul verwenden. Wie kann ich dies tun, indem ich nur das Parameterformular an diese Klasse übergebe? Danke Freunde.Behandeln Ereignisse aller Steuerelemente in einem VB.net-Formular aus einem Klassenmodul

+0

Alle Ereignisse oder nur bestimmte? Da alle Steuerelemente in einem Formular über die öffentliche Eigenschaft "Controls" verfügbar gemacht werden, ist es relativ einfach, alle diese Steuerelemente zu durchlaufen und auf jedem einen Ereignishandler hinzuzufügen. Wenn Sie Steuerelemente verschachtelt haben, ist das etwas schwieriger, aber immer noch machbar. Aber, wenn Sie * alle * Ereignisse behandeln wollen, würde das etwas Reflexion erfordern. –

+0

Können Sie erklären, was das eigentliche Problem ist, das Sie lösen möchten, anstatt zu fragen, was Sie Ihrer Meinung nach implementieren sollten? –

Antwort

0

Nach ein bisschen Herumalbern - das funktioniert.

Erstellen Sie Ihre Ereignisbehandlungsklasse entweder am Ende der Hauptformulardatei nach End Class mit all Ihren Ereignisbehandlungscode - oder in einer anderen Datei - es spielt keine Rolle. Solange alle Ihre Subs in der neuen Klasse mit dem Shared-Schlüsselwort deklariert sind. - wie diese

Friend Class Form1 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown 

    End Sub 

End Class 

Public Class OtherClass 

    Public Shared Sub test2(sender As Object, e As EventArgs) 
     MessageBox.Show("hi") 
    End Sub 

End Class 

In Ihrem Haupt-Code, müssen Sie AddHandler verwenden Sie den Code in der anderen Klasse, um die Ereignisse zu abonnieren - wie dieses

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown 
    AddHandler Button1.Click, AddressOf otherclass.test2 
End Sub 

jetzt also - basierend auf dem obigen Code, Wenn Sie auf die Schaltfläche klicken, wird eine MessageBox angezeigt, die zeigt Hi

Verwandte Themen