这是一个新问题,所以我很抱歉。
我正在填写我的文本框,其中的值是我在线抓取并将它们传递到列表框中,如下所示:
// textBox1.Text = test.ToString();
string[] names = result.Split('|');
foreach (string name in names)
{
listBox1.Items.Add(name);
}
但是我试图点击一个文件夹,并从那里显示的文件显示在我的listbox1中。这就是我尝试过的:
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();
}
}
但所有发生的事情都是我的列表框清空并且没有刷新。我怎样才能达到我想做的目的?
答案 0 :(得分:1)
在您执行任何其他操作之前,请从foreach中删除clear和update
listBox1.Items.Clear();
foreach (string name in names1)
{
listBox1.Items.Add(name);
}
listBox1.Update();
答案 1 :(得分:0)
你的行
foreach (string name in names1)
{
listBox1.Items.Clear();
listBox1.Items.Add(name);
listBox1.Update();
}
使每个字符串都能删除列表中的其他项目。
我很确定这不是你想要的
答案 2 :(得分:0)
使用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将为您处理一切。