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'.
问题不清楚问的是什么,也不清楚代码中使用的类。
从观察来看,FormEditor
和FormBrowser
在你的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();
}