尝试将目录文件夹上载到combobox2时发生目录信息错误
本文关键字:错误 combobox2 信息 上载 文件夹 | 更新日期: 2023-09-27 18:26:19
我正试图从目录将文件夹上传到comboBox 1,然后从comboBox1到comboBox2进行选择。
我有下面的代码,当我从组合框1中选择时,我会出错
无法将system.string类型的对象强制转换为系统。Io.DirectoryInfo
private void Form_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo(@"''Path'CAMR");
paths = new String[di.GetDirectories().Count()];
int i = 0;
foreach (DirectoryInfo fi in di.GetDirectories())
{
comboBox1.Items.Add(fi.Name);
}
foreach (DirectoryInfo fi in di.GetDirectories())
{
paths[i] = fi.FullName;
}
}
//我在下面的部分出错,因为我缺少转换的关键部分。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox3.Items.Clear();
//string dinf01 = comboBox2.SelectedItem.ToString();
DirectoryInfo dir = (DirectoryInfo)comboBox2.SelectedItem;
foreach (FileInfo fi in dir.GetFiles())
{
comboBox3.Items.Add(fi);
}
}
我需要这方面的帮助,我们非常感谢所有的帮助和建议。
谢谢。
您可以这样做:
foreach (DirectoryInfo fi in di.GetDirectories())
{
ComboBoxItem item = new ComboBoxItem();
item.Text = fi.Name;
item.Value = fi.FullName;
comboBox1.Items.Add(item);
}
其中ComboBoxItem定义为:
public class ComboBoxItem
{
public string Text { get; set; }
public object Value { get; set; }
public override string ToString()
{
return Text;
}
}
以便您可以使用检索所选值
comboBox1.SelectedItem as ComboboxItem).Value.ToString();
因此,您的第二个循环将如下所示:
DirectoryInfo dir = new DirectoryInfo(comboBox1.SelectedItem as ComboboxItem).Value.ToString());
foreach (FileInfo fi in dir.GetFiles())
{
comboBox3.Items.Add(fi);
}