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).

KI fragen

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 in VB.NET ein JPG-Bild beim Umwandeln in ein GIF-Bild gleichzeitig verkleinern oder vergrößern?

Um in VB.NET ein JPG-Bild in ein GIF-Bild umzuwandeln und dabei gleichzeitig die Größe zu ändern, kannst du die Klassen `System.Drawing.Image` und `System.Drawing.Bitmap` verwenden. Hi... [mehr]

Wie kann ich in VB.NET 2003 ein JPG-Bild in ein GIF-Bild umwandeln?

In VB.NET 2003 kannst du ein JPG-Bild in ein GIF-Bild umwandeln, indem du die Klassen aus dem Namespace `System.Drawing` verwendest. Hier ein einfaches Beispiel, wie das funktioniert: ```vb.net Impor... [mehr]

Kann ich in VB.NET 2003 mit Val("ABC02") den im String enthaltenen Zahlenwert "2" extrahieren?

Mit der Funktion `Val("ABC02")` in VB.NET 2003 erhältst du als Ergebnis den Wert `0`. Die Funktion `Val` liest nur so lange Zeichen aus dem String, wie sie als Zahl interpretiert werden... [mehr]

Wie kann ich in VB.NET 2003 eine Zeile in einer RTF-Box bei Enter-Taste automatisch vor dem Zeilenvorschub mit "°" beenden?

Um in VB.NET 2003 in einer RichTextBox beim Drücken der Enter-Taste vor dem Zeilenvorschub automatisch ein "°" einzufügen, kannst du das KeyDown- oder KeyPress-Ereignis der Ric... [mehr]