c#array不会在没有消息框的情况下更新

时间:2014-05-16 16:41:05

标签: c# arrays combobox listbox messagebox

我有这个表格,其中包括一个组合框和一个列表框。 组合框将图形文件夹中的每个子文件夹作为其项目。 当组合框的选定值更改时,程序将列出所选文件夹中的每个.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));
    }
}

如果我取消注释消息框行,代码就可以正常工作。

1 个答案:

答案 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));
    }
 }