Inserire degli items in una ComboBox in maniera performante

Scritto da  Massimo Bonanni il venerdì 18 febbraio 2011  •  Linguaggio: C#,VB   • Livello: 100


A volte si ha la necessità di riempire un controllo ComboBox (per Windows Form)  senza utilizzare il binding ma aggiungendo elementi alla collezione Items.
Ogni volta che si richiama il metodo Add() della proprietà Items (di tipo ComboBox.ObjectCollection), il framework ridisegna la combobox in virtù dei cambiamenti avvenuti e facendo perdere tempo in una procedura di inserimento massivo.
Per evidare ciò è possibile utilizzare il metodo BeginUpdate() immediatamente prima di cominciare a riempire la collezione Items e il metodo EndUpdate() al termine del riempimento.

VB.NET

Me.ComboBox1.BeginUpdate()
For i = 1 To 10000
  Me.ComboBox1.Items.Add(i)
Next
Me.ComboBox1.EndUpdate()

 

C#

this.comboBox1.BeginUpdate();
for (int i = 1; i <= 10000; i++)
{
  this.comboBox1.Items.Add(i);
}
this.comboBox1.EndUpdate();

 

 Questi metodi sono disponibili anche su ListView, ListBox e CheckedListBox.


Tags: 

 
x