次の方法で共有


方法: アクティブな MDI 子にデータを送信する

多くの場合、Multiple-Document インターフェイス (MDI) アプリケーションのコンテキスト内で、ユーザーがクリップボードから MDI アプリケーションにデータを貼り付ける場合など、アクティブな子ウィンドウにデータを送信する必要があります。

フォーカスがあるMDI子ウィンドウを確認し、その内容をクリップボードに送信する方法については、「アクティブなMDI子ウィンドウの特定」を参照してください。

クリップボードからアクティブな MDI 子ウィンドウにデータを送信するには

  1. メソッド内で、クリップボードのテキストをアクティブな子フォームのアクティブなコントロールにコピーします。

    この例では、Form1 コントロールを含む 1 つ以上の MDI 子ウィンドウを持つ MDI 親フォーム (RichTextBox) があることを前提としています。 詳細については、「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.");
          }
       }
    }
    

こちらも参照ください