DockPanelSuite -保存文档

本文关键字:文档 保存 DockPanelSuite | 更新日期: 2023-09-27 18:18:29

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'.

DockPanelSuite -保存文档

问题不清楚问的是什么,也不清楚代码中使用的类。

从观察来看,FormEditorFormBrowser在你的DocumentsPanel中都是Document,如果它们存在,它们将被列在DocumentsPanel实例的Documents属性中,在你的例子中是dockPanel1

因此,当您想要访问文档并保存它时,您需要验证文档是否在正确的类型中,即如果它在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();
}