刷新列表框以显示新值
本文关键字:显示 新值 列表 刷新 | 更新日期: 2023-09-27 18:30:01
这是一个新手问题,很抱歉。
我正在用值填充我的文本框,我在网上抓取并将它们传递到列表框,如下所示:
// textBox1.Text = test.ToString();
string[] names = result.Split('|');
foreach (string name in names)
{
listBox1.Items.Add(name);
}
然而,我正试图点击一个文件夹,并将其中显示的文件显示在我的列表框1中。这就是我尝试过的:
using (var testy = new WebClient())
{
test = testy.DownloadString("http://server.foo.com/images/getDirectoryList.php?dir=test_folder");
string[] names1 = test.Split('|');
foreach (string name in names1)
{
listBox1.Items.Clear();
listBox1.Items.Add(name);
listBox1.Update();
}
}
但所发生的一切都是我的列表框清空了,没有得到刷新。我怎样才能实现我想要做的事情?
在执行其他操作之前,从foreach 中删除清除和更新
listBox1.Items.Clear();
foreach (string name in names1)
{
listBox1.Items.Add(name);
}
listBox1.Update();
您的线路
foreach (string name in names1)
{
listBox1.Items.Clear();
listBox1.Items.Add(name);
listBox1.Update();
}
使得对于每个字符串,您都要删除列表中的任何其他项。
我很确定这不是你想要的
使用BindingSource
BindingSource bs = new BindingSource();
List<string> names1 = new List();
bs.DataSource = names1;
comboBox.DataSource = bs;
using (var testy = new WebClient())
{
test = testy.DownloadString("http://server.foo.com/images/getDirectoryList.php?dir=test_folder");
names1.AddRange(test.Split('|'));
bs.ResetBindings(false);
}
BindingSource将为您处理所有事务。