Wie greife ich in VB.NET 2003 von einem MDI-Formular auf ein Steuerelement zu?

Antwort

Um in Visual Basic .NET 2003 (VB.NET 2003) innerhalb einer MDI-Anwendung (Multiple Document Interface) von einem MDI-Parent-Formular (Hauptfenster) auf ein Steuerelement (z. B. einen Button, also „Schaltzug“) eines MDI-Child-Formulars (Unterfenster) zuzugreifen, gehst du wie folgt vor: **Beispiel: Zugriff vom MDI-Parent auf einen Button im aktiven MDI-Child** Angenommen, das MDI-Child-Formular heißt `ChildForm` und enthält einen Button namens `Button1`. 1. **Typprüfung und Zugriff:** ```vb ' Im MDI-Parent-Formular: Dim aktivesChild As Form = Me.ActiveMdiChild If aktivesChild IsNot Nothing AndAlso TypeOf aktivesChild Is ChildForm Then Dim child As ChildForm = CType(aktivesChild, ChildForm) child.Button1.Text = "Neuer Text" ' Oder andere Eigenschaften/Methoden End If ``` 2. **Zugriff auf ein bestimmtes MDI-Child:** ```vb For Each f As Form In Me.MdiChildren If TypeOf f Is ChildForm Then Dim child As ChildForm = CType(f, ChildForm) child.Button1.Enabled = False End If Next ``` **Wichtige Hinweise:** - Das Steuerelement (z. B. `Button1`) muss im `ChildForm` als `Public` oder mindestens `Friend` deklariert sein, damit du von außen darauf zugreifen kannst. - Beispiel für die Deklaration im Child-Formular: ```vb Public WithEvents Button1 As System.Windows.Forms.Button ``` **Zusammenfassung:** Du greifst über die `MdiChildren`-Eigenschaft oder `ActiveMdiChild` auf das gewünschte Child-Form zu, prüfst den Typ und kannst dann auf die Steuerelemente zugreifen, sofern sie entsprechend deklariert sind. Weitere Infos zu MDI in VB.NET findest du z. B. bei [Microsoft Learn](https://learn.microsoft.com/de-de/dotnet/desktop/winforms/advanced/multiple-document-interface-mdi-applications?view=netframeworkdesktop-4.8).

Neue Frage stellen

Verwandte Fragen

Wie kann man in VB.NET 2003 von einem Child-Formular aus einen Wert aus der MDI-Form abfragen?

Um in VB.NET 2003 von einem MDI-Child-Formular auf einen Wert der MDI-Parent-Form zuzugreifen, gehst du wie folgt vor: 1. **Typisieren des Parent-Formulars:** Das MDI-Parent-Formular muss eine &... [mehr]

Wie kann ich in VB.NET 2003 einen Screenshot eines Child-Forms als BackgroundImage im MDI-Parent anzeigen?

Um in VB.NET 2003 einen Screenshot eines MDI-Child-Forms zu erstellen und diesen als `BackgroundImage` im MDI-Parent zu verwenden, kannst du wie folgt vorgehen: 1. **Screenshot des Child-Forms erstel... [mehr]

Schließt in VB.NET 2003 bei Shortcut auch das MDI-Formular mit If Not Me.ActiveMdiChild Is Nothing Then Me.ActiveMdiChild.Close()?

Ja, der von dir genannte Code in VB.NET 2003: ```vb If Not Me.ActiveMdiChild Is Nothing Then Me.ActiveMdiChild.Close() End If ``` schließt das aktuell aktive MDI-Kindformular (also das unt... [mehr]

Warum schließt in VB.NET 2003 das Strg+W-Shortcut nicht nur das MDI-Child, sondern auch die MDI-Form selbst?

Das von dir beschriebene Verhalten tritt häufig auf, wenn das Shortcut (z. B. Strg+W) sowohl im Child-Formular als auch im MDI-Parent-Formular verarbeitet wird oder das Shortcut im MainMenu nicht... [mehr]

Kann eine Anwendung in VB.NET 2003 mehr als ein MDI-Formular besitzen?

In VB.NET 2003 kann eine Anwendung grundsätzlich mehrere MDI-Formulare (also mehrere Formulare, die jeweils als MDI-Container fungieren) besitzen. Allerdings kann **immer nur ein MDI-Container ak... [mehr]

Wie greift man in VB.NET 2003 aus einer Child-Form auf den MDI-Container zu?

In VB.NET 2003 kannst du aus einer Child-Form (MDI-Child) auf den MDI-Container (das MDI-Parent-Formular) über die Eigenschaft `Me.MdiParent` zugreifen. Diese Eigenschaft liefert eine Referenz au... [mehr]

Wie kann ich mit VB.NET 2003 eine Liste aller Sektionen aus einer INI-Datei auslesen?

Um mit VB.NET 2003 eine Liste aller Sektionen (Sections) einer INI-Datei zu erhalten, kannst du die Windows-API-Funktion `GetPrivateProfileSectionNames` verwenden. Diese Funktion liest alle Sektionsna... [mehr]

Wie erhalte ich in VB.NET 2003 eine Rückmeldung, wenn das Verschieben einer Datei in den Papierkorb abgebrochen wird?

In VB.NET 2003 gibt es keine eingebaute, direkte Möglichkeit, den Abbruch (z.B. durch den Benutzer) beim Verschieben einer Datei in den Papierkorb zu erkennen, da die Standardmethoden wie `File.D... [mehr]

Wie kann ich in VB.NET 2003 den Papierkorb verwenden?

In VB.NET 2003 gibt es keine eingebaute .NET-Klassenbibliothek, um Dateien direkt in den Windows-Papierkorb zu verschieben. Du kannst jedoch die Windows-API-Funktion **SHFileOperation** aus der Shell3... [mehr]

Warum funktioniert 'TextBox1.ContextMenu = Nothing' in VB.NET 2003 nicht?

In VB.NET 2003 (also .NET Framework 1.1) gibt es die Eigenschaft `ContextMenu` für Steuerelemente wie `TextBox`. Allerdings akzeptiert diese Eigenschaft **kein `Nothing`** (bzw. `null`), um das K... [mehr]