6

チェックされたリストボックスに数値文字列を追加するために使用される単一行のテキストボックスがあります。これがユーザーに表示されていない場合、リストボックスが最後に追加された項目に自動スクロールするようにします。リストボックスのスクロールプロパティを探しましたが、リストボックスをスクロールするように見えるものは見つかりません。

誰かアドバイスはありますか?

リストボックスに項目を追加するコードは次のとおりです。

Private Sub bttAddchklstDbManagement_Click(sender As System.Object, e As System.EventArgs) Handles bttAddchklstDBmanagement.Click
    If Not txtDBManagement.Text = Nothing And Not txtDBManagement.Text = "" Then
        chklstDBmanagement.Items.Add(txtDBManagement.Text)
        chklstDBmanagement.SetItemChecked(chklstDBmanagement.Items.Count - 1, True)
        txtDBManagement.Text = Nothing
        txtDBManagement.Focus()
    End If
End Sub

txtDBmanagement は TextBox
です chklstDbManagement はチェックされたリストボックスです

4

3 に答える 3

19

アイテムを追加した後、TopIndex を使用します。

    private void button1_Click(object sender, EventArgs e)
    {
        checkedListBox1.Items.Add("item");
        checkedListBox1.TopIndex = checkedListBox1.Items.Count - 1;
    }
于 2013-03-20T15:31:31.140 に答える
1

Mike の提案に基づいて、よりシンプルで正確な方法を使用しました。

    lstLog.Items.Add(logText)
    Dim RowsVisible As Integer = lstLog.ClientSize.Height / lstLog.ItemHeight
    If ActiveControl IsNot lstLog OrElse lstLog.TopIndex >= lstLog.Items.Count - RowsVisible - 1 Then
        lstLog.TopIndex = lstLog.Items.Count - 1
    End If
于 2016-10-18T14:46:39.053 に答える