如何使用backgroundworker c#替换下一个项目的列表框的上一项?

问题描述 投票:1回答:1

我正在使用backgroundworker将项目添加到列表框中。它会在一段时间后逐个显示列表中的所有项目。我想只显示列表中的当前项目而不是所有项目。

这就是我尝试过的。

 private void backgroundWorker3_DoWork(object sender, DoWorkEventArgs e)
    {

        List<string> result = new List<string>();

        var found = obj.getFiles();//List<strings>
        if (found.Count != 0)
        {

            for (int i = 0; i < found.Count; i++)
            {
                int progress = (int)(((float)(i + 1) / found.Count) * 100);
                if (found[i].Contains("SFTP"))
                {
                    result.Add(found[i]);

                    (sender as BackgroundWorker).ReportProgress(progress, found[i]);
                }
                System.Threading.Thread.Sleep(500);
            }



            e.Result = result;

        }
    }

    private void backgroundWorker3_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        if (e.UserState != null)

        listBox3.Items.Add(e.UserState);

    }
c# winforms backgroundworker listboxitem
1个回答
0
投票

我想只显示列表中的当前项目而不是所有项目。

虽然这有点像黑客,但我认为它应该适用于你描述的内容

// just call clear first
listBox3.Items.Clear();
listBox3.Items.Add(e.UserState);

说实话,你确定在这种情况下你想要一个ListBox吗?毕竟它不是一个真正的列表,它只是一个项目

© www.soinside.com 2019 - 2024. All rights reserved.