ListBox.BeginUpdate メソッド
項目を ListBox に 1 つずつ追加するときにパフォーマンスを維持するには、 EndUpdate メソッドが呼び出されるまでコントロールを再描画しないようにします。
Public Sub BeginUpdate()
[C#]
public void BeginUpdate();
[C++]
public: void BeginUpdate();
[JScript]
public function BeginUpdate();
解説
複数の項目を ListBox に追加する場合は、 ListBox の Items プロパティを使用してアクセスする、 ListBox.ObjectCollection クラスの AddRange メソッドを使用することをお勧めします。この方法を使用すると、項目の配列を 1 回の操作でリストに追加できます。しかし、 ListBox.ObjectCollection クラスの Add メソッドを使用して 1 つずつ項目を追加する場合は、 BeginUpdate メソッドを使用して、項目がリストに追加されるたびに ListBox が再描画されるという状況を回避できます。項目をリストに追加するタスクが完了した後で、 EndUpdate メソッドを呼び出して ListBox を再描画できるようにします。リストに多数の項目を追加する場合は、この方法で項目を追加すると、 ListBox を描画するときにちらつきません。
使用例
5,000 の項目を ListBox に追加するときに、 BeginUpdate メソッドと EndUpdate メソッドを使用する例を次に示します。この例は、 listBox1
という名前の ListBox コントロールが Form に追加されていること、およびこのメソッドがそのフォーム内に含まれ、そこから呼び出されていることを前提にしています。
Public Sub AddToMyListBox()
' Stop the ListBox from drawing while items are added.
listBox1.BeginUpdate()
' Loop through and add five thousand new items.
Dim x As Integer
For x = 1 To 4999
listBox1.Items.Add("Item " & x.ToString())
Next x
' End the update process and force a repaint of the ListBox.
listBox1.EndUpdate()
End Sub
[C#]
public void AddToMyListBox()
{
// Stop the ListBox from drawing while items are added.
listBox1.BeginUpdate();
// Loop through and add five thousand new items.
for(int x = 1; x < 5000; x++)
{
listBox1.Items.Add("Item " + x.ToString());
}
// End the update process and force a repaint of the ListBox.
listBox1.EndUpdate();
}
[C++]
public:
void AddToMyListBox()
{
// Stop the ListBox from drawing while items are added.
listBox1->BeginUpdate();
// Loop through and add five thousand new items.
for(int x = 1; x < 5000; x++)
{
listBox1->Items->Add(String::Format( S"Item {0}", __box(x)));
}
// End the update process and force a repaint of the ListBox.
listBox1->EndUpdate();
}
[JScript]
function AddToMyListBox(){
// Stop the ListBox from drawing while items are added.
listBox1.BeginUpdate()
// Loop through and add five thousand new items.
for(var x = 0; x < 5000; x++)
listBox1.Items.Add("Item " + x.ToString())
// End the update process and force a repaint of the ListBox.
listBox1.EndUpdate()
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
ListBox クラス | ListBox メンバ | System.Windows.Forms 名前空間 | EndUpdate