方法: アクティブな MDI 子フォームにデータを送信する
マルチドキュメント インターフェイス (MDI) アプリケーションでは、アプリケーションのコンテキスト内で、アクティブな子ウィンドウにデータを送信する必要が生じることがよくあります。たとえば、ユーザーがクリップボードから MDI アプリケーションにデータを貼り付ける場合などです。
注意
フォーカスがある子ウィンドウを確認し、その内容をクリップボードに送信する方法については、アクティブな MDI の子の確認に関する記事を参照してください。
クリップボードからアクティブな MDI 子ウィンドウにデータを送信するには
メソッド内で、アクティブな子フォームのアクティブなコントロールにクリップボードのテキストをコピーします。
注意
この例では、RichTextBox コントロールを含んだ MDI 子ウィンドウが 1 つ以上ある MDI 親フォーム (
Form1
) が存在することを前提としています。 詳細については、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."); } } }
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback