Midi Child-Forms: User Function/Events von Midiform aus aufrufen (ohne Name.Call)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Hinti.

    Midi Child-Forms: User Function/Events von Midiform aus aufrufen (ohne Name.Call)

    Guten Morgen.
    Ich weiß gerade nicht wie ich das am besten machen soll. Ich will im Midiform in einer Schleife wie folgender:

    VB.NET-Quellcode

    1. For Each win As Form In Me.MdiChildren
    2. win.MeinePublicFunktion()
    3. Next

    In "allen" Childs diese public Funktion "MeinePublicFunktion()" aufrufen, die ich natürlich in den childs erstellt habe, aber natürlich kennt der Compiler das so nicht.

    Was ist denn hier eine Gute Lösung? Hab grad keine gute Idee, außer die unsaubere.. zu sehen wie das Fenster heißt und dann könnte ich das jenige Fenster direkt beim Namen ansprechen. Aber das ist so unelegant finde ich!

    Was mir auch noch einfällt, so glaube ich mache ich es jetzt. mit einem User Event in den Childs und Raiseevent.
    Wobei ich da auch nicht ganz sicher bin, wie ich das auf quasi "beliebige Childs" binden kann.

    Eins stelle ich im Vorfeld klar: Jedes "mögliche" Child hat diese Funktion, oder ein entsprechendes Event.
    Hi,

    erstelle dir ein Interface welches die notwendigen Funktionen beschreibt.
    Dann implementierst du in jeder MDI-ChildForm dieses Interface und programmierst es entsprechend aus.

    Danach kannst du in der MDI-Hauptform die Funktion aufrufen:
    Interface:

    VB.NET-Quellcode

    1. Public Interface IMyInterface
    2. Sub MySub()
    3. End Interface


    MDI-Childform

    VB.NET-Quellcode

    1. Public Class Form2
    2. Implements IMyInterface
    3. Public Sub MySub() Implements IMyInterface.MySub
    4. MessageBox.Show("Form2")
    5. End Sub
    6. End Class


    MDI-Hauptform

    VB.NET-Quellcode

    1. For Each frm In Me.MdiChildren.OfType(Of IMyInterface)()
    2. frm.MySub()
    3. Next


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten