アクセス数 累計:000,125,038 昨日:000,000,099 本日:000,000,060
|
|
|
|
【Amazon ランキング:ゲーム - ダウンロード】
|
|
リストボックスはアイテム追加時に再描画を行っています。そのため大量にアイテムを追加すると大変時間がかかります。
そこでリストボックスには一時的に描画を停止させるメソッドが用意されています。
アイテムを追加している間は描画を停止させておいて、追加が終わったら一気に描画させることで無駄を省くことができます。
見た目もちらつきが抑えられてよくなるのでぜひ試してみてください。
|
|
フォームの作成 |
リストボックスの描画を停止させるには BeginUpdate() をメソッドを使用します。描画を再開させるいは EndUpdate() メソッドを使用します。
[VB]
Me.listBox1.BeginUpdate()
Me.listBox1.EndUpdate()
[C#]
this.listBox1.BeginUpdate();
this.listBox1.EndUpdate();
※サンプルプログラムを作ったら BeginUpdate() をコメントアウトして高速化していないバージョンと処理時間を比較して見ると面白いですよ。
|
フォームの作成 |
|
Form4 を作成して ListBox,Button を貼り付けてください。
ListBox:[listBox1]
Button:[Button1]
|
|
VB[Form4.vb] |
Public Class Form4
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles button1.Click
Try
' リストボックス更新開始
Me.listBox1.BeginUpdate()
' アイテム追加
For i As Integer = 0 To 10000
Me.listBox1.Items.Insert(0, String.Format("アイテム:{0:00000}", i))
Next
Finally
' リストボックス更新終わり
Me.listBox1.EndUpdate()
End Try
End Sub
End Class
|
|
C#[Form4.cs] |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ListBox_CS
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
// リストボックス更新開始
this.listBox1.BeginUpdate();
// アイテム追加
for (int i = 0; i <= 10000; i++)
this.listBox1.Items.Insert(0, string.Format("アイテム:{0:00000}", i));
}
finally
{
// リストボックス更新終わり
this.listBox1.EndUpdate();
}
}
}
}
|
|
|
※このページで紹介しているサンプルコードについて管理者は動作保障をいたしません※
※サンプルコードを使用する場合は、自己責任でお願いします※
|
【楽天 ランキング:パソコン・周辺機器 - パソコン周辺機器】
|
|
|
|
このサイトはフリーソフトのMerge HTMLで作成されています。
このサイトはリンクフリーです。
|
ページの先頭に戻る |
Copyright© 2010-2015 Jun.Shiozaki All rights reserved. |
|
|
|