ComboBox with ArrayList

本文关键字:ArrayList with ComboBox | 更新日期: 2023-09-27 18:32:43

我想查找所有扩展名为.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;
}

ComboBox with ArrayList

首先,您的代码不起作用,因为System.IO.Directory.GetFiles不会返回您在循环中枚举foreach integers

二、如果要保留代码,请将其修改为:

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;

试试这个:

    foreach (FileInfo file in files)
    {
        comboBox1.Items.Add(file.Name);
    }
     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;

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

您应该将 foreach 更改为:

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

但是,您可以简单地这样做:

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

祝你的任务好运。

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

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