Delen via


Procedure: Gegevens verzenden naar het actieve MDI-kind

Vaak moet u binnen de context van Multiple-Document Interface (MDI)-toepassingengegevens naar het actieve onderliggende venster sturen, bijvoorbeeld wanneer de gebruiker gegevens van het Klembord in een MDI-toepassing plakt.

Notitie

Zie Bepalen van het Actieve MDI-kindvenstervoor informatie over het controleren welk kindvenster de focus heeft en om de inhoud naar het Klembord te sturen.

Gegevens verzenden naar het actieve MDI-onderliggend venster vanaf het Klembord

  1. Kopieer binnen een methode de tekst op het Klembord naar het actieve besturingselement van het actieve kindformulier.

    Notitie

    In dit voorbeeld wordt ervan uitgegaan dat er een MDI-hoofdformulier (Form1) is met een of meer onderliggende MDI-vensters die een RichTextBox besturingselement bevatten. Voor meer informatie, zie MDI Parent Forms maken.

    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.");  
          }  
       }  
    }  
    

Zie ook