Compartir a través de


Cómo: Enviar datos al formulario secundario MDI activo

A menudo, en el contexto de las Aplicaciones de interfaz de múltiples documentos (MDI), necesitará enviar datos a la ventana secundaria activa, como sucede cuando el usuario pega datos procedentes del Portapapeles en una aplicación MDI.

Nota

Para obtener información sobre cómo comprobar qué ventana secundaria tiene el foco y enviar su contenido al Portapapeles, vea Determinar la ventana secundaria de MDI activa.

Para enviar datos a la ventana secundaria MDI activa desde el Portapapeles

  • Dentro de un método, copie el texto del Portapapeles en el control activo del formulario secundario activo.

    Nota

    En este ejemplo se supone que hay un formulario primario MDI (Form1) que tiene una o varias ventanas secundarias MDI que, a su vez, contienen un control RichTextBox. Para obtener más información, vea Crear formularios primarios 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.");
          }
       }
    }
    
    private void mniPaste_Click(System.Object sender, System.EventArgs e) 
    {
       // Determine the active child form.
       Form activeChild = this.get_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.get_ActiveControl()));
             if ( theBox  != null  ) 
             {
                // Put the selected text on the Clipboard.
                Clipboard.SetDataObject(theBox.get_SelectedText());
             }
          } 
          catch(System.Exception exp)
          {
             MessageBox.Show("You need to select a RichTextBox.");
          }
       }
    }
    

Vea también

Tareas

Cómo: Crear formularios principales MDI

Cómo: Crear formularios MDI secundarios

Cómo: Determinar el formulario secundario MDI activo

Cómo: Organizar formularios MDI secundarios

Otros recursos

Aplicaciones de interfaz de múltiples documentos (MDI)