自动启动/刷新ListBox

时间:2019-03-24 16:09:50

标签: c#

我要创建一个状态列表框,它表示一个服务器,基本上说“服务器已启动” “正在连接”等。但是我的问题是我没有让列表框运行。我不知道如何开始在ListBox中的循环,所以它显示任何内容。我必须使用触发器来启动它吗?

我尝试了Application.run()但还是行不通 和一会儿(true)循环,但这里也没有

private void chatverlauf_SelectedIndexChanged(object sender, EventArgs e)
        {
            chatverlauf.Items.Add(" TEST ");
        }

我希望它立即生效,就像在程序开始显示“ TEST”时我想要的展示代码一样

1 个答案:

答案 0 :(得分:0)

您需要一个计时器,该计时器每次运行时,要么更新列表视图的当前项目,要么清除并重新添加新项目:

Timer timer = new Timer{ Interval = 60000, Enabled = true };  //every minute
timer.Tick += (s, e) =>
{
    chatverlauf.Items.Clear();
    var StatusList = ... // get list of servers' status
    chatverlauf.SuspendLayout();
    foreach(var s in StatusList)
    {
        chatverlauf.Items.Add(new ListViewItem(new string[]{s.Name, s.Status});
    }
    chatverlauf.RsumeLayout();
};