MIT’s blog

個人的なメモかな

TreeView

データベース登録処理はほぼデバッグ完了。巨大なDBファイル抱えたプロジェクトはバックアップも大変orz バックアップする場所も以前は無料クラウドに可能だったけど、このサイズは辛い。Googleドライブになんとか入れてるけど、余力が無くなった。

 

開発は次の段階に入った。ヒューマンインターフェースで、データ選択にTreeViewを初めて使う事にしたが、これがなかなか大変でした。結局、落ち着いたのは空のTreeNode配列を子ノード作って親ノード作成時に子ノードを持つノードを作成という感じで、最後にAddRange()でTreeViewコントロールに追加で出来た。しかし、データ量が多いので表示まで時間が掛かってしまう。なので、表示するデータ範囲を制限して時短するしかないかも。

あっ、今回ので配列の追加時に事前にサイズ指定していると、余分な配列がNullだとエラーになるので、

TreeNode tnYear = new TreeNode[0];
TreeNode
tnYM = new TreeNode[0];

と宣言しておき、追加前に

Array.Resize<TreeNode>(ref tnMD, iMDcnt+1);
tnMD[iMDcnt] = new TreeNode(race.開催年月日.ToString("MM月dd日"));

Array.Resize<TreeNode>(ref tnYear, iYcnt + 1);
tnYear[iYcnt] = new TreeNode(String.Format("{0}年", iCurYear), tnMD);
Array.Clear(tnMD, 0, iMDcnt);

って感じで配列要素追加して入れる事で思った感じに出来た。親ノードに子ノード込みで作成後は子ノード配列を解放しておいた。