- PR -

TreeView上におけるチェックボックスの選択状態が画面上に反映されない

1
投稿者投稿内容
alf
常連さん
会議室デビュー日: 2005/11/15
投稿数: 22
お住まい・勤務地: 岐阜県・愛知県
投稿日時: 2006-08-21 18:30

 いつも参考にさせて頂いています、alfです。

 【問題】
  各ノードのCheckedプロパティがtrueになっているにも関わらず、CheckBoxのチェ
  ック状態がTreeViewに反映されない

 【現状】
  XMLから読み込んだデータからTreeNodeCollectionのオブジェクトを生成して、
  モーダルダイアログ上のTreeView(CheckBox付)に反映させています。
  各ノードのCheckBoxの状態を保持させるため、[OK]ボタン押下後に

   TreeViewのNode → TreeNodeCollectionオブジェクト

  へNodeコピーしています。

  再びモーダルダイアログを表示した時に、前回のCheckBoxの選択状態を反映させ
るため上記とは逆の、

   TreeNodeCollectionオブジェクト → TreeViewのNode

  のNodeコピーを行うと何故か前回のCheckBoxの選択状態が全く反映されません。
  (当然この時の各ノードのCheckedプロパティはtrue)

  ただ気になるのは、TreeView→TreeViewのNodeコピーでは上手く行きますが、
  TreeView→TreeNodeCollection→TreeViewのNodeコピーだとダメだということです。

  尚、TreeViewやTreeNodeCollectionオブジェクト間のNodeコピーは以前こちらで教
  えて頂いた以下のような方法で行っています。

  treeView_SetLogFile.CheckBoxes = true;
  treeView_SetLogFile.Nodes.Clear(); // Addする前にNodeをクリア
  foreach (System.Windows.Forms.TreeNode t in treeLogData)
   treeView_SetLogFile.Nodes.Add((System.Windows.Forms.TreeNode)t.Clone());

  Nodeコピー後、ShowDialogでモーダルダイアログを表示させているだけですが、
  どこかおかしな点はございますでしょうか?

  MSDNや@ITの過去ログやググってみたものの、どうしても解決できなかったので質
  問させて頂きました。
  以上、よろしくお願いします。

  [開発環境] .NET2003(C#)
1

スキルアップ/キャリアアップ(JOB@IT)