0

私はいくつDocumentsPanelかの開いているフォームを持っていますが、それぞれが別の種類です。ループで開いていたファイルを保存するにはどうすればよいですか。

この場合、これは機能します。

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

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

ただし、FormBrowserパネルで 1 秒を開くと、ドキュメントを保存しようとするとエラーが表示されます。エラーは次のとおりです。

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

1 に答える 1

0

質問は、何が求められているかについて非常に不明確であり、コードで使用されているクラスについても非常に不明確です。

観察から、 と の両方FormEditorFormBrowserDocumentあり、それらが存在する場合は、インスタンスのプロパティにDocumentsPanelリストされます。DocumentsDocumentsPaneldockPanel1

したがって、ドキュメントにアクセスして保存する場合は、ドキュメントが正しいタイプであるかどうか、つまり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 に答える