タイトル
 メニューにないコーナーはTopからいけます
TOP.NETWindowsForm → This Page

.NET プログラミングのコーナー
クラス関連 > コントロール関連 > リストボックス


概要


リストボックス&チェックリストボックスの使い方のサンプルです。


サンプルイメージ


サンプル画像


サンプルソース(一部抜粋)

C#

// この値よりリストの幅が小さい場合、水平スクロールバーONにすると水平スクロールバーが表示される。
ListBox1.HorizontalExtent = 300;
CheckedListBox1.HorizontalExtent = 300;

// 選択方法(選択不可, 1項目のみ選択可, 複数項目を選択可, 複数項目を選択可拡張版)
// (注意)CheckedListBox は複数選択をサポートしていない
ListBox1.SelectionMode = SelectionMode.None;
ListBox1.SelectionMode = SelectionMode.One;
ListBox1.SelectionMode = SelectionMode.MultiSimple;
ListBox1.SelectionMode = SelectionMode.MultiExtended;
CheckedListBox1.SelectionMode = SelectionMode.None;
CheckedListBox1.SelectionMode = SelectionMode.One;

// 水平スクロールバー(ON/OFF)
// (注意)HorizontalExtent プロパティ値よりリストの幅が小さい場合、水平スクロールバーONにすると水平スクロールバーが表示される。;
// ただし、ScrollAlwaysVisible = true ならば HorizontalExtent プロパティ値に関係なく表示される;
ListBox1.HorizontalScrollbar = true;
ListBox1.HorizontalScrollbar = false;
CheckedListBox1.HorizontalScrollbar = true;
CheckedListBox1.HorizontalScrollbar = false;

// スクロールバーの表示状態(ON/OFF)
ListBox1.ScrollAlwaysVisible = true;
ListBox1.ScrollAlwaysVisible = false;
CheckedListBox1.ScrollAlwaysVisible = true;
CheckedListBox1.ScrollAlwaysVisible = false;

// 項目を1つ追加
ListBox1.Items.Add("AAAAA");
CheckedListBox1.Items.Add("AAAAA");

// 項目を先頭に1つ挿入
ListBox1.Items.Insert(0, "AAAAA");
CheckedListBox1.Items.Insert(0, "AAAAA");

// 選択項目を削除(その1)
ListBox1.Items.Remove(ListBox1.SelectedItem);
CheckedListBox1.Items.Remove(CheckedListBox1.SelectedItem);

// 選択項目を削除(その2)
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);
CheckedListBox1.Items.RemoveAt(CheckedListBox1.SelectedIndex);

// 1番目の項目を選択項目にする(その1)
ListBox1.SelectedIndex = 0;
CheckedListBox1.SelectedIndex = 0;

// 1番目の項目を選択状態にする(その2)
ListBox1.SetSelected(0, true);
CheckedListBox1.SetSelected(0, true);

// リストをクリア
ListBox1.Items.Clear();
CheckedListBox1.Items.Clear();

// 項目を大量に追加(早い)
// (注意)マシンのスペックによってはかなりの違いが出ます。
private void Button9_Click(object sender, System.EventArgs e)
{
	int intCount;

	// リストの再描画を一旦停止
	ListBox1.BeginUpdate();
	CheckedListBox1.BeginUpdate();

	ListBox1.Items.Clear();
	CheckedListBox1.Items.Clear();
	for (intCount = 1; intCount <= 10000; intCount++)
	{
		ListBox1.Items.Add("AAAAA");
		CheckedListBox1.Items.Add("AAAAA");
	}

	// リストの再描画を再開
	ListBox1.EndUpdate();
	CheckedListBox1.EndUpdate();

}

// 複数項目を一度に追加
string[] strArray = new string[5];
strArray[0] = "AAAAA";
strArray[1] = "BBBBB";
strArray[2] = "CCCCC";
strArray[3] = "DDDDD";
strArray[4] = "EEEEE";
ListBox1.Items.AddRange(strArray);
CheckedListBox1.Items.AddRange(strArray);

// 項目数の取得
MessageBox.Show(ListBox1.Items.Count.ToString());
MessageBox.Show(CheckedListBox1.Items.Count.ToString());

// リスト項目から文字列"00003"を検索
int intIndex  = ListBox1.FindString("00003");
if (intIndex >= 0)
{
	MessageBox.Show((intIndex + 1).ToString() + "行目です");
}
else
{
	MessageBox.Show("見つかりませんでした");
}

// 1番目の項目のチェック状態の取得
if (CheckedListBox1.GetItemChecked(0) == true)
{
	MessageBox.Show("チェック");
}
else
{
	MessageBox.Show("未来チェック");
}

// 1番目の項目をチェック状態に設定(ON/OFF)
CheckedListBox1.SetItemCheckState(0, CheckState.Checked);
CheckedListBox1.SetItemCheckState(0, CheckState.Unchecked);


--------------------------------------------------------------------------------
VB.NET

'この値よりリストの幅が小さい場合、水平スクロールバーONにすると水平スクロールバーが表示される。
ListBox1.HorizontalExtent = 300
CheckedListBox1.HorizontalExtent = 300

'選択方法(選択不可, 1項目のみ選択可, 複数項目を選択可, 複数項目を選択可拡張版)
'(注意)CheckedListBox は複数選択をサポートしていない
ListBox1.SelectionMode = SelectionMode.None
ListBox1.SelectionMode = SelectionMode.One
ListBox1.SelectionMode = SelectionMode.MultiSimple
ListBox1.SelectionMode = SelectionMode.MultiExtended
CheckedListBox1.SelectionMode = SelectionMode.None
CheckedListBox1.SelectionMode = SelectionMode.One

'水平スクロールバー(ON/OFF)
'(注意)HorizontalExtent プロパティ値よりリストの幅が小さい場合、水平スクロールバーONにすると水平スクロールバーが表示される。
'ただし、ScrollAlwaysVisible = True ならば HorizontalExtent プロパティ値に関係なく表示される
ListBox1.HorizontalScrollbar = True
ListBox1.HorizontalScrollbar = False
CheckedListBox1.HorizontalScrollbar = True
CheckedListBox1.HorizontalScrollbar = False

'スクロールバーの表示状態(ON/OFF)
ListBox1.ScrollAlwaysVisible = True
ListBox1.ScrollAlwaysVisible = False
CheckedListBox1.ScrollAlwaysVisible = True
CheckedListBox1.ScrollAlwaysVisible = False

'項目を1つ追加
ListBox1.Items.Add("AAAAA")
CheckedListBox1.Items.Add("AAAAA")

'項目を先頭に1つ挿入
ListBox1.Items.Insert(0, "AAAAA")
CheckedListBox1.Items.Insert(0, "AAAAA")

'選択項目を削除(その1)
ListBox1.Items.Remove(ListBox1.SelectedItem)
CheckedListBox1.Items.Remove(CheckedListBox1.SelectedItem)

'選択項目を削除(その2)
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
CheckedListBox1.Items.RemoveAt(CheckedListBox1.SelectedIndex)

'1番目の項目を選択項目にする(その1)
ListBox1.SelectedIndex = 0
CheckedListBox1.SelectedIndex = 0

'1番目の項目を選択状態にする(その2)
ListBox1.SetSelected(0, True)
CheckedListBox1.SetSelected(0, True)

'リストをクリア
ListBox1.Items.Clear()
CheckedListBox1.Items.Clear()

'項目を大量に追加(早い)
'(注意)マシンのスペックによってはかなりの違いが出ます。
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
    Dim intCount As Integer

    'リストの再描画を一旦停止
    ListBox1.BeginUpdate()
    CheckedListBox1.BeginUpdate()

    ListBox1.Items.Clear()
    CheckedListBox1.Items.Clear()
    For intCount = 1 To 15000
        ListBox1.Items.Add("AAAAA")
        CheckedListBox1.Items.Add("AAAAA")
    Next

    'リストの再描画を再開
    ListBox1.EndUpdate()
    CheckedListBox1.EndUpdate()
End Sub

'複数項目を一度に追加
Dim strArray(4) As String
strArray(0) = "AAAAA"
strArray(1) = "BBBBB"
strArray(2) = "CCCCC"
strArray(3) = "DDDDD"
strArray(4) = "EEEEE"
ListBox1.Items.AddRange(strArray)
CheckedListBox1.Items.AddRange(strArray)

'項目数の取得
MsgBox(ListBox1.Items.Count.ToString())
MsgBox(CheckedListBox1.Items.Count.ToString())

'リスト項目から文字列"00003"を検索
Dim intIndex As Integer = ListBox1.FindString("00003")
If intIndex >= 0 Then
    MsgBox((intIndex + 1).ToString & "行目です")
Else
    MsgBox("見つかりませんでした")
End If

'1番目の項目のチェック状態の取得
If CheckedListBox1.GetItemChecked(0) = True Then
    MsgBox("チェック")
Else
    MsgBox("未来チェック")
End If

'1番目の項目をチェック状態に設定(ON/OFF)
CheckedListBox1.SetItemCheckState(0, CheckState.Checked)
CheckedListBox1.SetItemCheckState(0, CheckState.Unchecked)

サンプルソースのダウンロード


ソースのダウンロード


TOP.NETWindowsForm → This Page
Valid CSS!