我对下面的代码有疑问,基本上是从存储扩展名为 .config 的文件的路径中读取的,它读取不带扩展名的文件的名称并将它们全部显示在组合框中。这很好用,如果您单击向下箭头并选择一个名称,它实际上会执行应有的操作,但是,一旦我用鼠标从下拉列表中选择了一个项目,然后我返回并开始在组合框中输入内容,我的应用程序就会崩溃抛出异常。
我试过添加一个 try-catch-finally ,但它一直抛出同样的错误。一旦我开始在组合框中输入内容,是否是导致我的应用程序崩溃的循环?
pd 如果我只是使用鼠标从下拉菜单中选择一个项目,我的应用程序工作正常,但是一旦我用鼠标选择了一个项目并使用键盘在组合框中键入另一个项目名称,我的应用程序就会崩溃。任何指针都会有所帮助。
// Gets all the file names from the path assigned to templatePath
// and assigns it to the string array fname
string[] fname = Directory.GetFiles(templatePath);
// Begin sorting through the file names assigned to the string array fname
foreach (string file in fname)
{
// Remove the extension from the file names and compare the list with
// the dropdown selected item
if (System.IO.Path.GetFileNameWithoutExtension(file) == cbTemplates.SelectedItem.ToString())
{
// StreamReader gets the contents from the found file and assigns
// them to the labels
using (var obj = new StreamReader(File.OpenRead(file)))
{
lbl1.Content = obj.ReadLine();
lbl2.Content = obj.ReadLine();
lbl3.Content = obj.ReadLine();
lbl4.Content = obj.ReadLine();
lbl5.Content = obj.ReadLine();
lbl6.Content = obj.ReadLine();
lbl7.Content = obj.ReadLine();
lbl8.Content = obj.ReadLine();
lbl9.Content = obj.ReadLine();
lbl10.Content = obj.ReadLine();
obj.Dispose();
}
}
}