[Tips][ComboBox] 描画パフォーマンスを上げる

本記事はWindowsアプリケーションのTipsです。


ComboBoxで一度に多くの項目を追加しようとすると、すべてを表示するまでに長い時間を要する場合があります。これは1項目ずつ追加と描画が行われるためです。

項目を追加する前にBeginUpdateメソッドを実行し、項目の追加が終了したらEndUpdateメソッドを実行すると、描画パフォーマンスを上げることができます。

下記は描画パフォーマンスを上げる例です。

描画パフォーマンスの違いを確認したい場合は、BeginUpdateとEndUpdateをコメントにして実行してみてください。

VBの例

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '再描画を回避するためにBeginUpdateメソッドを呼び出します
    ComboBox1.BeginUpdate()

    '5000アイテム追加する
    For I As Integer = 0 To 4999
        ComboBox1.Items.Add(I)
    Next

    'EndUpdateを呼び出し、再描画できるようにします
    ComboBox1.EndUpdate()
End Sub

 

C#の例

private void button1_Click(object sender, EventArgs e)
{
    //再描画を回避するためにBeginUpdateメソッドを呼び出します
    comboBox1.BeginUpdate();

    //5000アイテム追加する
    for (int i = 0; i < 5000; i++)
        comboBox1.Items.Add(i);

    //EndUpdateを呼び出し、再描画できるようにします
    comboBox1.EndUpdate();
}

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です