C#,winform中下拉框combox的内容想读取桌面的文件夹名称
privatevoidCB_SelectedIndexChanged(objectsender,EventArgse){DirectoryInfodir=newDirec...
private void CB_SelectedIndexChanged(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo("C:\\Users\\Desktop\\test\\");
foreach (FileInfo d in dir.GetFiles())
{
CB.Items.Add(d.Name);
}
}
这段代码为什么运行了下拉框还是空的 展开
{
DirectoryInfo dir = new DirectoryInfo("C:\\Users\\Desktop\\test\\");
foreach (FileInfo d in dir.GetFiles())
{
CB.Items.Add(d.Name);
}
}
这段代码为什么运行了下拉框还是空的 展开
1个回答
展开全部
添加一个按钮,将这里这个函数的代码放在按钮单击事件的处理函数中。同时取消对CB的SelectedIndexChanged事件的响应。下拉框是空的,是因为1、你不能在处理CB的SelectedIndexChanged事件的函数中改变CB的Items集合的值。2、目录C:\Users\Desktop\test\中可能没有文件。
更多追问追答
追问
如果添加按钮单击事件0.0那我是不是要单机完按钮才能打开下拉框
关于第二点,文档test文件夹中我放的还是一堆文件夹,我的本意就是读取test中的所有文件夹的名称
追答
1、读取文件夹的名称应该用GetDirectories()函数;
foreach(DirectoryInfo d in dir.GetDirectories())
{
CB.Items.Add(d.Name);
}
2、下拉框可以任何时候打开,但单击按钮前打开,里面是空的啊!
要不你干脆处理窗口的Load事件,将以下代码放入这个事件的处理函数中:
DirectoryInfo dir = new DirectoryInfo("C:\\Users\\Desktop\\test\\");
foreach(DirectoryInfo d in dir.GetDirectories())
{
CB.Items.Add(d.Name);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询