c#listbox autoscroll无法正常工作

时间:2016-06-24 11:07:43

标签: c# windows forms listbox

我在c#中创建了一个聊天应用程序。消息将存储到SQL Server数据库中,消息也将从数据库中读出到客户端应用程序。作为控件,有一个ListBox项,它包含从数据库读取的消息,以及一个用于发送消息的文本框(将它们插入数据库以便稍后读出)。要从数据库中读取消息,请使用读取数据库中消息字符串的sqlDataReader对象。我已经在表单中添加了一个计时器,并将其间隔设置为1000毫秒。

计时器功能包含下一个代码:

lblUsername.Text = "Ingelogd als: " + User.username.ToString();

        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = @"Integrated Security=True; Initial Catalog=Chat; Data Source=DESKTOP-9S5PJV3\SQLEXPRESS";
        conn.Open();

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = "select * from tblMessages where messageReceiver=" + "'" + User.username.ToString() + "'";

        SqlDataReader dr = cmd.ExecuteReader();

        listBox1.SelectedIndex = listBox1.Items.Count - 1;
        listBox1.Items.Clear();



        while (dr.Read())
        {
            listBox1.Items.Add(dr.GetString(4) + " zegt: " + dr.GetString(1));
            listBox1.Items.Add("");

        }

ListBox1.Items.Clear()清除所有消息,然后再次读取它们。如果我不使用Clear(),ListBox将包含每秒重复的所有消息。

我已将listBox1.SelectedIndex = listBox1.Items.Count - 1;用于自动滚动功能,但这不起作用(我认为因为每次都需要清除列表框)。有没有办法自动滚动列表框?目前它不会向下滚动,列表框会闪现...... [/ p>

0 个答案:

没有答案