Bagikan melalui


Cara: Menambahkan ke atau Menghapus dari Koleksi Kontrol pada Run Time

Tugas umum dalam pengembangan aplikasi adalah menambahkan kontrol ke dan menghapus kontrol dari kontrol kontainer apa pun pada formulir Anda (seperti Panel atau GroupBox kontrol, atau bahkan formulir itu sendiri). Pada waktu desain, kontrol dapat diseret langsung ke panel atau kotak grup. Pada waktu proses, kontrol ini mempertahankan Controls koleksi, yang melacak kontrol apa yang ditempatkan pada mereka.

Catatan

Contoh kode berikut berlaku untuk kontrol apa pun yang mempertahankan kumpulan kontrol di dalamnya.

Untuk menambahkan kontrol ke koleksi secara terprogram

  1. Buat instans kontrol yang akan ditambahkan.

  2. Atur properti kontrol baru.

  3. Tambahkan kontrol ke Controls kumpulan kontrol induk.

    Contoh kode berikut menunjukkan cara membuat instans Button kontrol. Ini memerlukan formulir dengan Panel kontrol dan bahwa metode penanganan peristiwa untuk tombol yang dibuat, NewPanelButton_Click, sudah ada.

    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);  
    }  
    

Untuk menghapus kontrol dari koleksi secara terprogram

  1. Hapus penanganan aktivitas dari peristiwa. Di Visual Basic, gunakan kata kunci Pernyataan RemoveHandler; di C#, gunakan operator -=.

  2. Remove Gunakan metode untuk menghapus kontrol yang diinginkan dari koleksi panelControls.

  3. Dispose Panggil metode untuk merilis semua sumber daya yang digunakan oleh kontrol.

    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();  
       }  
    }  
    

Baca juga