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 ausführen, der auf dem Steuerelement ausgeführt wird, das den Fokus im aktuell aktiven Kindformular hat. Angenommen, Sie möchten ausgewählten Text aus dem Textfeld des Unterformulars in die Zwischenablage kopieren. Sie erstellen eine Prozedur, die ausgewählten Text mithilfe Click des Ereignisses des Menüelements "Kopieren" im Standardmenü "Bearbeiten" in die Zwischenablage kopiert.
Da eine MDI-Anwendung viele Instanzen desselben Kindformulars haben kann, muss die Prozedur wissen, welches Formular verwendet werden soll. Um das richtige Formular anzugeben, verwenden Sie die ActiveMdiChild Eigenschaft, die das untergeordnete Formular zurückgibt, das den Fokus hat oder die zuletzt aktiv war.
Wenn Sie über mehrere Steuerelemente in einem Formular verfügen, müssen Sie auch angeben, welches Steuerelement aktiv ist. Wie bei der ActiveMdiChild Eigenschaft gibt die ActiveControl Eigenschaft das Steuerelement zurück, das den Fokus auf dem aktiven untergeordneten Formular hat. 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 zu bestimmen (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.
Hinweis
In diesem Beispiel wird davon ausgegangen, dass ein übergeordnetes MDI-Formular (
Form1
) mit einem oder mehreren untergeordneten MDI-Fenstern vorhanden ist, die ein RichTextBox-Steuerelement enthalten. Weitere Informationen finden Sie unter Erstellen von übergeordneten MDI-Formularen.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