Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gelegentlich möchten Sie einen Befehl erfassen, der auf dem Steuerelement ausgeführt wird, das den Fokus auf dem derzeit aktiven Kindformular hat. Angenommen, Sie möchten markierten Text aus dem Textfeld des untergeordneten Formulars in die Zwischenablage kopieren. Sie erstellen eine Prozedur, die markierten Text mithilfe des Ereignisses Click des Menüelements "Kopieren" im Standardmenü "Bearbeiten" in die Zwischenablage kopiert.
Da eine MDI-Anwendung viele Instanzen desselben untergeordneten Formulars aufweisen kann, muss die Prozedur wissen, welches Formular verwendet werden soll. Verwenden Sie zum Angeben des richtigen Formulars die ActiveMdiChild-Eigenschaft, die das untergeordnete Formular zurückgibt, welches den Fokus hat oder das zuletzt aktiv war.
Wenn Sie über mehrere Steuerelemente in einem Formular verfügen, müssen Sie auch angeben, welches Steuerelement aktiv ist. Wie die ActiveMdiChild-Eigenschaft gibt die ActiveControl-Eigenschaft das Steuerelement zurück, wobei sich der Fokus auf dem aktiven untergeordneten Formular befindet. Das folgende Verfahren veranschaulicht eine Kopierprozedur, die aus einem untergeordneten Formularmenü, einem Menü im MDI-Formular oder einer Symbolleistenschaltfläche aufgerufen werden kann.
Um das aktive MDI-Kindfenster festzustellen (um dessen Text in die Zwischenablage zu kopieren)
Kopieren Sie in einer Methode den Text des aktiven Steuerelements des aktiven untergeordneten Formulars in die Zwischenablage.
Anmerkung
In diesem Beispiel wird davon ausgegangen, dass ein übergeordnetes MDI-Formular (
Form1
) vorhanden ist, das eines oder mehrere untergeordnete MDI-Fenster umfasst, die ein RichTextBox-Steuerelement enthalten. Weitere Informationen finden Sie unter Erstellen von MDI-Hauptformularen.Public Sub mniCopy_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mniCopy.Click ' Determine the active child form. Dim activeChild As Form = Me.ActiveMDIChild ' If there is an active child form, find the active control, which ' in this example should be a RichTextBox. If (Not activeChild Is Nothing) Then Dim theBox As RichTextBox = _ TryCast(activeChild.ActiveControl, RichTextBox) If (Not theBox Is Nothing) Then 'Put selected text on Clipboard. Clipboard.SetDataObject(theBox.SelectedText) Else MessageBox.Show("You need to select a RichTextBox.") End If End If End Sub
protected void mniCopy_Click (object sender, System.EventArgs e) { // Determine the active child form. Form activeChild = this.ActiveMdiChild; // If there is an active child form, find the active control, which // in this example should be a RichTextBox. if (activeChild != null) { try { RichTextBox theBox = (RichTextBox)activeChild.ActiveControl; if (theBox != null) { // Put the selected text on the Clipboard. Clipboard.SetDataObject(theBox.SelectedText); } } catch { MessageBox.Show("You need to select a RichTextBox."); } } }
Siehe auch
.NET Desktop feedback