0

DocumentsPanel我有一些开放的形式,它们中的每一个都是另一种。如何保存循环打开的文件。

在这种情况下,这是可行的。

   using (StreamWriter file = new StreamWriter ("files.txt"))
         {

             foreach (FormEditor doc in dockPanel1.Documents)
             {
                     file.WriteLine (doc.SuperFileName);
             }
          }
   file.Close ();

但是,如果FormBrowser在面板中打开一秒钟,当您尝试保存文档时会弹出错误。错误说明如下:

    Unable to cast object of type 'App1.FormBrowser' to type 'App1.FormEditor'.
4

1 回答 1

0

这个问题对所问的内容非常不清楚,对代码中使用的类也非常不清楚。

从观察来看,FormEditorFormBrowserDocument在您的 中,如果它们存在DocumentsPanel,它们将列在实例Documents属性中,在您的情况下是 。DocumentsPaneldockPanel1

因此,当您要访问并保存文档时,您需要验证该文档的类型是否正确,即是否为FormEditor. 一个简单的修复可能是:

using (StreamWriter file = new StreamWriter ("files.txt"))
{
    foreach (var doc in dockPanel1.Documents)
    {
        var fileEditor = doc as FormEditor;

        if (fileEditor != null)
        {
            file.WriteLine (doc.SuperFileName);
        }
    }

    file.Close();
}
于 2014-08-16T10:50:08.953 回答