Nasıl yapılır: Etkin MDI Alt Öğesini Belirleme
Bazen, etkin olan alt forma odaklanan denetim üzerinde çalışan bir komut sağlamak isteyeceksiniz. Örneğin, alt formun metin kutusundan seçilen metni Pano'ya kopyalamak istediğinizi varsayalım. Standart Düzenle menüsündeki Kopyala menü öğesinin olayını kullanarak Click seçili metni Pano'ya kopyalayan bir yordam oluşturursunuz.
MDI uygulaması aynı alt formun birçok örneğine sahip olabileceğinden, yordamın hangi formun kullanılacağını bilmesi gerekir. Doğru formu belirtmek için, odağı olan veya en son etkin olan alt formu döndüren özelliğini kullanın ActiveMdiChild .
Formda birkaç denetiminiz olduğunda, hangi denetimin etkin olduğunu da belirtmeniz gerekir. ActiveMdiChild özelliği gibi, ActiveControl özelliği de etkin alt forma odaklanarak denetimi döndürür. Aşağıdaki yordamda alt form menüsünden, MDI formundaki bir menüden veya araç çubuğu düğmesinden çağrılabilen bir kopyalama yordamı gösterilmektedir.
Etkin MDI alt öğesini belirlemek için (metni Pano'ya kopyalamak için)
Bir yöntem içinde, etkin alt formun etkin denetiminin metnini Pano'ya kopyalayın.
Dekont
Bu örnekte, denetim içeren bir veya daha fazla MDI alt penceresi olan bir RichTextBox MDI üst formu (
Form1
) olduğu varsayılır. Daha fazla bilgi için bkz . MDI Üst Formları Oluşturma.Public Sub mniCopy_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles mniCopy.Click ' Determine the active child form. Dim activeChild As Form = Me.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 Dim theBox As RichTextBox = _ TryCast(activeChild.ActiveControl, RichTextBox) If (Not theBox Is Nothing) Then 'Put selected text on Clipboard. Clipboard.SetDataObject(theBox.SelectedText) Else MessageBox.Show("You need to select a RichTextBox.") End If End If End Sub
protected void mniCopy_Click (object sender, System.EventArgs e) { // Determine the active child form. Form activeChild = this.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) { // Put the selected text on the Clipboard. Clipboard.SetDataObject(theBox.SelectedText); } } catch { MessageBox.Show("You need to select a RichTextBox."); } } }
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin