0

私はプログラミングは初めてではありませんが、VSTO はかなり初めてです (私のお気に入りではありません!)。Excel 2010、VS 2010、および C# を使用しています。

私の Excel Workbook プロジェクト内には、XSD を使用して画面から画面へのデータを管理する複雑な winform があります。これはうまくいきます。ただし、ユーザーが Excel ファイルを開いたり閉じたりしたときに、このデータセットをフォームの 1 回の使用から次の使用まで保持するには、どのコードが必要ですか? 現在、フォームを閉じるとデータセットは消えます。

私はフォームのシリアライゼーションを調べましたが、この記事は私を本当に近づけます: http://www.codeproject.com/Articles/12976/How-to-Clone-Serialize-Copy-Paste-a-Windows-Forms

しかし、上記のコードは DataGridView コントロールをサポートしていません :(

とにかく、プロジェクトと私のコードが使用している XSD が既にあるので、このデータセットを保存し、それを Excel シートの後続の使用で使用する別の方法が必要です。つまり、構造化データは既に存在します。このデータを保存し、フォームの読み込み時に再読み込みするネイティブ操作はありませんか?

そこで、(1) 構造化データをディスクに保存し、(2) この保存されたデータセットを後続のフォームの読み込みで使用するコードを探しています。

また

DataGridView コントロールをシリアル化するコードを持っている人はいますか? どこにも見つからず、上記の記事の著者はどこにも存在しないと述べているため、これは少し「白いクジラ」のようです。

4

2 に答える 2

1

DataGridView をシリアル化する代わりに、DataTable またはカスタム バインディング リストのいずれかから DataGridView を作成してから、その DataTable またはカスタム バインディング リストのいずれかをシリアル化できますか?

于 2013-07-29T17:43:37.557 に答える
1

データグリッドに正常に割り当てられたデータセットとしてデータソースがあることは、コードから明らかです。その場合は、単にこれを行う必要があります

ds.WriteXml(@"c:\1.xml");

そして、この xml を後続のフォームで次のように使用できます。

System.IO.FileStream fsReadXml = new System.IO.FileStream 
    (myXMLfile, System.IO.FileMode.Open);
ds.ReadXml(fsReadXml);
于 2013-07-29T17:48:19.650 に答える