Aracılığıyla paylaş


Nasıl yapılır: Çalışma Zamanında bir Denetimler Koleksiyonuna Ekleme veya Kaldırma

Uygulama geliştirmedeki yaygın görevler, formlarınızdaki herhangi bir kapsayıcı denetimine (veya GroupBox denetimi, hatta formun Panel kendisi gibi) denetim eklemek ve denetimleri kaldırmaktır. Tasarım zamanında denetimler doğrudan bir panele veya grup kutusuna sürüklenebilir. Çalışma zamanında, bu denetimler üzerinde hangi denetimlerin yerleştirildiğine ilişkin bir koleksiyon tutar Controls .

Dekont

Aşağıdaki kod örneği, içindeki denetim koleksiyonunu koruyan tüm denetimler için geçerlidir.

Bir koleksiyona program aracılığıyla denetim eklemek için

  1. Eklenecek denetimin bir örneğini oluşturun.

  2. Yeni denetimin özelliklerini ayarlayın.

  3. Denetimi üst denetimin Controls koleksiyonuna ekleyin.

    Aşağıdaki kod örneği, denetimin bir örneğinin Button nasıl oluşturulacağını gösterir. Denetimi olan bir Panel form gerektirir ve oluşturulan NewPanelButton_Clickdüğme için olay işleme yönteminin zaten var olması gerekir.

    Public NewPanelButton As New Button()  
    
    Public Sub AddNewControl()  
       ' The Add method will accept as a parameter any object that derives  
       ' from the Control class. In this case, it is a Button control.  
       Panel1.Controls.Add(NewPanelButton)  
       ' The event handler indicated for the Click event in the code
       ' below is used as an example. Substite the appropriate event  
       ' handler for your application.  
       AddHandler NewPanelButton.Click, AddressOf NewPanelButton_Click  
    End Sub  
    
    public Button newPanelButton = new Button();  
    
    public void addNewControl()  
    {
       // The Add method will accept as a parameter any object that derives  
       // from the Control class. In this case, it is a Button control.  
       panel1.Controls.Add(newPanelButton);  
       // The event handler indicated for the Click event in the code
       // below is used as an example. Substitute the appropriate event  
       // handler for your application.  
       this.newPanelButton.Click += new System.EventHandler(this. NewPanelButton_Click);  
    }  
    

Bir koleksiyondaki denetimleri program aracılığıyla kaldırmak için

  1. Olay işleyicisini olaydan kaldırın. Visual Basic'te RemoveHandler Deyimi anahtar sözcüğünü kullanın; C# dilinde -= işlecini kullanın.

  2. panelin RemoveControls koleksiyonundan istenen denetimi silmek için yöntemini kullanın.

  3. Denetimi tarafından Dispose kullanılan tüm kaynakları serbest bırakmak için yöntemini çağırın.

    Public Sub RemoveControl()  
    ' NOTE: The code below uses the instance of
    ' the button (NewPanelButton) from the previous example.  
       If Panel1.Controls.Contains(NewPanelButton) Then  
          RemoveHandler NewPanelButton.Click, AddressOf _
             NewPanelButton_Click  
          Panel1.Controls.Remove(NewPanelButton)  
          NewPanelButton.Dispose()  
       End If  
    End Sub  
    
    private void removeControl(object sender, System.EventArgs e)  
    {  
    // NOTE: The code below uses the instance of
    // the button (newPanelButton) from the previous example.  
       if(panel1.Controls.Contains(newPanelButton))  
       {  
          this.newPanelButton.Click -= new System.EventHandler(this.
             NewPanelButton_Click);  
          panel1.Controls.Remove(newPanelButton);  
          newPanelButton.Dispose();  
       }  
    }  
    

Ayrıca bkz.