Aracılığıyla paylaş


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)

  1. 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.