Partager via


Guide pratique pour envoyer des données à l’enfant MDI actif

Souvent, dans le contexte des applications à interface MDI Multiple-Document, vous devez envoyer des données à la fenêtre enfant active, par exemple lorsque l'utilisateur colle des données depuis le presse-papiers dans une application MDI.

Note

Pour plus d’informations sur la vérification de quelle fenêtre enfant a le focus et l’envoi de son contenu dans le Presse-papiers, consultez Détermination de l'enfant MDI actif.

Pour envoyer des données à la fenêtre enfant MDI active à partir du Presse-papiers

  1. Dans une méthode, copiez le texte du Presse-papiers dans le contrôle actif du formulaire enfant actif.

    Remarque

    Cet exemple suppose qu’il existe un formulaire parent MDI (Form1) disposant d'une ou plusieurs fenêtres enfants MDI qui contiennent un contrôle RichTextBox. Pour plus d’informations, consultez Création de formulaires parents MDI.

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

Voir aussi