没有消息框c#数组不会更新

本文关键字:更新 数组 消息 | 更新日期: 2023-09-27 18:03:37

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

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

没有消息框c#数组不会更新

使用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));
    }
 }