リストボックスでよく使用する設定集(その3)(7個) (SNo.102) 1.複数選択されている項目を取得する(テキストボックス等に表示) 2.リストボックスに水平スクロールバーを表示 3.DataSourceで配列データを高速に登録 4.AddRangeメソッドで配列データを追加登録 5.項目をすべて削除 6.複数選択されているインデックス番号を取得する 7.ランダムな配列データを作成する |
|
使用コントロール | Button1 〜 Button7 ListBox1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
テスト用のデータの作成と表示 Private ss(100) As String Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load With ListBox1 .Items.Add("たちつてと") .Items.Add("たちつてと") .Items.Add("あいうえお") .Items.Add("かきくけこ") .Items.Add("さしすせそ") .Items.Add("たちつてと") .Items.Add("なにぬねの") .Items.Add("はひふへほ") .Items.Add("まみむめも") .Items.Add("や ゆ よ") .Items.Add("らりるれろ") .Items.Add("わをん") .Items.Add("たちつてと") .Items.Add("たちつてと") .Items.Add("スクロールバーがないと読めないような長い文字列を記入") End With 'ランダムな配列データを作成 Dim myData As String = "123ABCabcあいうアイウ" Dim i, j, strLen As Integer For i = 0 To 100 Dim myStr As String = "" For j = 1 To 10 myStr &= myData.Substring(CInt(13 * Rnd() + 1), 1) Next j ss(i) = myStr Next i End Sub |
|
1.複数選択されている項目を取得する(テキストボックス等に表示)
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'リストボックスで複数選択されている項目を取得 If ListBox1.SelectedItems.Count - 1 >= 0 Then Dim i As Integer Dim sb As New System.Text.StringBuilder(1000) '選択されている項目を取得 For i = 0 To ListBox1.SelectedItems.Count - 1 'その文字列を高速に連結 sb.Append(ListBox1.SelectedItems(i) & vbCrLf) Next '取得結果をテキストボックス等に表示する場合 Debug.WriteLine(sb.ToString()) End If End Sub |
|
2.リストボックスに水平スクロールバーを表示 Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click 'リストボックスに水平スクロールバーを表示 'ボタンをクリック毎に水平スクロールバーを表示・非表示に切り替え If ListBox1.HorizontalScrollbar Then '水平スクロールバーを非表示に ListBox1.HorizontalScrollbar = False Else 'リストボックスに水平スクロールバーを表示 ListBox1.HorizontalScrollbar = True End If End Sub |
|
3.DataSourceで配列データを高速に登録 別途、配列データをご用意下さい。 Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click '配列データを高速に登録 'DataSource プロパティを設定した場合、 'ユーザーは項目のコレクションを変更できません。(エラーが発生するので注意) ListBox1.DataSource = ss End Sub |
|
4.AddRangeメソッドで配列データを追加登録 別途、配列データをご用意下さい。 Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click '配列データを高速に追加登録 ListBox1.Items.AddRange(ss) End Sub |
|
5.項目をすべて削除 Private Sub Button5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button5.Click '項目をすべて削除 ListBox1.Items.Clear() End Sub |
|
6.複数選択されているインデックス番号を取得する Private Sub Button6_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button6.Click '複数選択されているインデックス番号を取得 For i As Integer = 0 To ListBox1.SelectedIndices.Count - 1 Debug.WriteLine(ListBox1.SelectedIndices(i)) Next End Sub |