コンボボックスへ項目追加時の速度向上
今回は、コンボボックスへ大量の項目を追加する際にパフォーマンスを向上する(処理速度を上げる)方法をご紹介します。
コンボボックスへ項目を追加する際、「項目追加」→「描画」という処理が行われます。
大量のデータをコンボボックスへ追加する際に、毎回この2つの処理が繰り返されることで処理速度が大きく低下する場合があります。
今回ご紹介する方法では、「描画」処理を全ての項目の追加が終わってから1回のみ動作させることで、項目追加時の速度を改善する方法になります。
コンボボックスの描画処理を無効にするには、ComboBoxクラスのBeginUpdateメソッドを使用し、再度有効にするにはEndUpdateメソッドを使用します。
comboBox名.BeginUpdate()
comboBox名.EndUpdate()
それではサンプルを見てみましょう。
以下は、comboBox1へ10000件の項目を追加する際に毎回描画させず、すべての項目が追加されてから描画を行う例です。
1 2 3 4 5 6 7 8 9 10 11 12 |
private void Form1_Load(object sender, EventArgs e) { //描画無効 comboBox1.BeginUpdate(); //項目追加 for (int i = 0; i < 10000; i++) comboBox1.Items.Add(i); //再描画 comboBox1.EndUpdate(); } |
上記を実行することで、comboBox1へ10000件のデータを追加し、処理速度も改善されます。
以上が、コンボボックスの描画速度を上げる方法です。
ぜひ参考にしてみてください。