ラッパーコンボコントロールへの項目追加に時間がかかります
対象製品
InputMan for Windows Forms 8.0J
詳細
ラッパーコンボコントロールで、AddやAddRangeメソッド等でItemsプロパティにコレクションを追加し、ドロップダウンリストに大量の項目を追加すると、コンボコントロールやラッパークラシックコンボコントロールに比べて大幅に時間がかかります。
この動作は、ラッパーコンボコントロールの構造上の理由によるものです。
ラッパーコンボコントロールへの項目追加の処理時間を短縮するには、以下のいずれかの方法を適用します。
◆データソースと連結して項目を追加する
以下のサンプルコードのように、DataSourceプロパティを使用して項目を設定します。
[Visual Basic]
◆BeginUpdateおよびEditUpdateメソッドを利用する
Itemsプロパティにコレクションを追加する処理の前後で、以下のサンプルコードのようにBeginUpdateおよびEndUpdateメソッドを実行します。
[Visual Basic]
この動作は、ラッパーコンボコントロールの構造上の理由によるものです。
ラッパーコンボコントロールへの項目追加の処理時間を短縮するには、以下のいずれかの方法を適用します。
◆データソースと連結して項目を追加する
以下のサンプルコードのように、DataSourceプロパティを使用して項目を設定します。
[Visual Basic]
' データテーブルを作成します。 Dim dt1 As New DataTable("List") dt1.Columns.Add("Item") ' データテーブルに項目を追加します。 For i As Integer = 1 To 1000 dt1.Rows.Add("Item" + i.ToString()) Next ' データテーブルをDataSourceプロパティに設定します。 Combo1.DataSource = dt1 Combo1.ValueMember = "Item" Combo1.DisplayMember = "Item"[C#]
// データテーブルを作成します。 DataTable dt1 = new DataTable("List"); dt1.Columns.Add("Item"); // データテーブルに項目を追加します。 for (int i=1; i<=1000; i++) { dt1.Rows.Add("Item" + i.ToString()); } // データテーブルをDataSourceプロパティに設定します。 combo1.DataSource = dt1; combo1.ValueMember = "Item"; combo1.DisplayMember = "Item";
◆BeginUpdateおよびEditUpdateメソッドを利用する
Itemsプロパティにコレクションを追加する処理の前後で、以下のサンプルコードのようにBeginUpdateおよびEndUpdateメソッドを実行します。
[Visual Basic]
' BeginUpdateメソッドを実行します。 Combo1.BeginUpdate() ' コンボコントロールに項目を追加します。 For i As Integer = 1 To 1000 Combo1.Items.Add("Item" + i.ToString()) Next ' EndUpdateメソッドを実行します。 Combo1.EndUpdate()[C#]
// BeginUpdateメソッドを実行します。 combo1.BeginUpdate(); // コンボコントロールに項目を追加します。 for(int i=1; i<=1000; i++) { combo1.Items.Add("Item" + i.ToString()); } // EndUpdateメソッドを実行します。 combo1.EndUpdate();