带有ArrayList的ComboBox

时间:2013-09-24 19:27:30

标签: c# winforms

我想查找具有 .xls 扩展名的所有文件,并将文件名称打印到组合框中。当我运行我的程序时,组合框是空的,但调试器显示文件 arraylist的计数为4.

这就是我所拥有的:

private void Form1_Load(object sender, EventArgs e)
{
    ArrayList files = new ArrayList();

    files.AddRange(System.IO.Directory.GetFiles("c:\\test", "*.xls"));

    comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

    foreach (int i in files)
    {
        comboBox1.Items.Add(i);
    }

    comboBox1.SelectedIndex = 0;
}

5 个答案:

答案 0 :(得分:2)

首先,您的代码无效,因为System.IO.Directory.GetFiles没有返回您在integers循环中枚举的foreach

<强>第二下, 如果您想保留您的代码,请将其修改为:

foreach (var i in files)
{
   comboBox1.Items.Add(i.ToString());
}

第三次,您可以编写一个优雅且更方便的代码:

  var files = System.IO.Directory.GetFiles("c:\\test", "*.xls");
  comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
  comboBox1.Items.AddRange(files);
  comboBox1.SelectedIndex = 0;

答案 1 :(得分:0)

试试这个:

    foreach (FileInfo file in files)
    {
        comboBox1.Items.Add(file.Name);
    }

答案 2 :(得分:0)

     ArrayList files = new ArrayList();

    files.AddRange(System.IO.Directory.GetFiles("c:\\test", "*.xls"));

    comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

    foreach (string i in files)
    {
        comboBox1.Items.Add(i);
    }

    comboBox1.SelectedIndex = 0;

答案 3 :(得分:0)

我不习惯ArrayList,但我相信它包含字符串而不是整数。

你应该将你的foreach改为:

foreach(string file in files)
    comboBox1.Items.Add(i);

但是,您可以这样做:

comboBox1.Items.AddRange(Directory.GetFiles("C:\\test", "*.xls"));

祝你好运。

答案 4 :(得分:0)

Directory.GetFiles返回一个字符串数组。不是整数。所以你循环,没有找到任何物品。

foreach (string file in files)
{
    comboBox1.Items.Add(file);
}