Compartilhar via


Como enviar dados para o filho MDI ativo

Muitas vezes, no contexto de aplicativos MDI (Interface Multiple-Document), você precisará enviar dados para a janela filho ativa, como quando o usuário cola dados da Área de Transferência em um aplicativo MDI.

Observação

Para obter informações sobre como determinar qual janela filha tem foco e enviar seu conteúdo para a Área de Transferência, consulte Como determinar o filho MDI ativo.

Para enviar dados a partir da área de transferência para a janela MDI filha ativa

  1. Em um método, copie o texto na área de transferência para o controle ativo do formulário filho ativo.

    Observação

    Este exemplo assume que há um formulário pai MDI (Form1) que tem uma ou mais janelas filho MDI que contém um controle RichTextBox. Para obter mais informações, consulte Criando formulários pai 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.");
          }
       }
    }
    

Consulte também