Share via


Vorgehensweise: Senden von Daten an das aktive untergeordnete MDI-Element

Häufig müssen Sie im Kontext von MDI-Anwendungen (Multiple-Document Interface, Schnittstelle für mehrere Dokumente) Daten an das aktive untergeordnete Fenster senden, z. B. wenn der Benutzer Daten aus der Zwischenablage in eine MDI-Anwendung einfügt.

Hinweis

Informationen zum Überprüfen, welches untergeordnete Fenster den Fokus hat, sowie zum Senden seines Inhalts an die Zwischenablage finden Sie unter Ermitteln des aktiven untergeordneten MDI-Fensters.

So senden Sie Daten aus der Zwischenablage an das aktive untergeordnete MDI-Fenster

  1. Kopieren Sie in einer Methode den Text aus der Zwischenablage in das aktive Steuerelement des aktiven untergeordneten Formulars.

    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 mniPaste_Click(ByVal sender As Object, _  
       ByVal e As System.EventArgs) Handles mniPaste.Click  
    
       ' Determine the active child form.  
       Dim activeChild As Form = Me.ParentForm.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  
          Try  
             Dim theBox As RichTextBox = Ctype(activeChild.ActiveControl, RichTextBox)  
             If (Not theBox Is Nothing) Then  
                ' Create a new instance of the DataObject interface.  
                Dim data As IDataObject = Clipboard.GetDataObject()  
                ' If the data is text, then set the text of the
                ' RichTextBox to the text in the clipboard.  
                If (data.GetDataPresent(DataFormats.Text)) Then  
                   theBox.SelectedText = data.GetData(DataFormats.Text).ToString()  
                End If  
             End If  
          Catch  
             MessageBox.Show("You need to select a RichTextBox.")  
          End Try  
       End If  
    End Sub  
    
    protected void mniPaste_Click (object sender, System.EventArgs e)  
    {  
      // Determine the active child form.  
       Form activeChild = this.ParentForm.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)  
             {  
                // Create a new instance of the DataObject interface.  
                IDataObject data = Clipboard.GetDataObject();  
                // If the data is text, then set the text of the
                // RichTextBox to the text in the clipboard.  
                if (data.GetDataPresent(DataFormats.Text))  
                {  
                   theBox.SelectedText = data.GetData(DataFormats.Text).ToString();
                }  
             }  
          }  
          catch
          {  
             MessageBox.Show("You need to select a RichTextBox.");  
          }  
       }  
    }  
    

Weitere Informationen