我有这个表格,其中包括一个组合框和一个列表框。 组合框将图形文件夹中的每个子文件夹作为其项目。 当组合框的选定值更改时,程序将列出所选文件夹中的每个.png文件,并将它们添加到列表框的项目中。
问题是,如果没有在将文件添加到数组之间显示消息框,并且将每个项目添加到列表框中,则数组将保持为空。
以下是代码:
private void graphicBox_SelectedIndexChanged(object sender, EventArgs e)
{
graphicList.Items.Clear();
string selectedfolder = SkinSuite.Properties.Settings.Default.exepath + "\\GRAPHIC\\" + graphicBox.SelectedText;
graphicfiles = Directory.GetFiles(SkinSuite.Properties.Settings.Default.exepath + "\\GRAPHIC\\" + graphicBox.SelectedText);
// MessageBox.Show("FOR SOME REASON THIS DOESNT WORK IF I DONT SHOW YOU A MESSAGEBOX!");
foreach (string file in graphicfiles)
{
graphicList.Items.Add(Path.GetFileName(file));
}
}
如果我取消注释消息框行,代码就可以正常工作。
答案 0 :(得分:0)
使用graphicBox.SelectedItem
代替graphicBox.SelectedText
,这对我来说很合适。请更改您的代码,如下所示,也可以使用Path.Combine
来构建文件路径
private void graphicBox_SelectedIndexChanged(object sender, EventArgs e)
{
graphicList.Items.Clear();
string selectedfolder = SkinSuite.Properties.Settings.Default.exepath + "\\GRAPHIC\\" + graphicBox.SelectedItem;
graphicfiles = Directory.GetFiles(SkinSuite.Properties.Settings.Default.exepath + "\\GRAPHIC\\" + graphicBox.SelectedText);
// MessageBox.Show("FOR SOME REASON THIS DOESNT WORK IF I DONT SHOW YOU A MESSAGEBOX!");
foreach (string file in graphicfiles)
{
graphicList.Items.Add(Path.GetFileName(file));
}
}