☆TreeViewを使ってみる。
[Windowsフォームアプリケーション]
<TreeNodeの追加と削除>
TreeViewへのTreeNodeの追加と削除を試してみました。なんかごちゃごちゃしていますが、 下記のプログラムで問題なく動作しているみたいです。
TreeNodeの取得には下記のプロパティが用意されています。
FirstNode ツリー ノード コレクション内の最初の子ツリー ノードを取得します。
LastNode 最後の子ツリー ノードを取得します。
NextNode 次のレベルにある兄弟ツリー ノードを取得します。
PrevNode 前のレベルにある兄弟ツリー ノードを取得します。
NextVisibleNode 次のレベルにある、表示されているツリー ノードを取得します。
PrevVisibleNode 前のレベルにある、表示されているツリー ノードを取得します。
<気になること>
私はTreeViewを使って階層構造のファイルの読み書きする時、Delphi7までは、TTreeNodeのLevelというプロパティを多用してきましたが、それが見当たりません。 その代わりになるかどうかわかりませんが、FullPathというプロパティがあります。 今後検討していきたいと思います。
<TreeNodeの追加と削除>
TreeViewへのTreeNodeの追加と削除を試してみました。なんかごちゃごちゃしていますが、 下記のプログラムで問題なく動作しているみたいです。
//選択ノードの兄弟を追加する。 procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); begin if (TreeView1.SelectedNode = nil) or (TreeView1.SelectedNode.Parent = nil) then TreeView1.Nodes.Add('Sibling') else TreeView1.SelectedNode.Parent.Nodes.Add('Sibling'); end; //選択ノードの子を追加する。 procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs); begin if (TreeView1.SelectedNode <> nil) then TreeView1.SelectedNode.Nodes.Add('Child'); end; //選択ノード位置に挿入する。 procedure TWinForm.Button3_Click(sender: System.Object; e: System.EventArgs); begin if (TreeView1.SelectedNode <> nil) then begin if (TreeView1.SelectedNode.Parent = nil) then TreeView1.Nodes.Insert (TreeView1.SelectedNode.Index, TreeNode.Create('Insert')) else TreeView1.SelectedNode.Parent.Nodes.Insert (TreeView1.SelectedNode.Index , TreeNode.Create('Insert')); end; end; //選択ノードを削除する。 procedure TWinForm.Button4_Click(sender: System.Object; e: System.EventArgs); begin if (TreeView1.SelectedNode <> nil) then TreeView1.SelectedNode.Remove; end;<TreeNodeの取得>
TreeNodeの取得には下記のプロパティが用意されています。
FirstNode ツリー ノード コレクション内の最初の子ツリー ノードを取得します。
LastNode 最後の子ツリー ノードを取得します。
NextNode 次のレベルにある兄弟ツリー ノードを取得します。
PrevNode 前のレベルにある兄弟ツリー ノードを取得します。
NextVisibleNode 次のレベルにある、表示されているツリー ノードを取得します。
PrevVisibleNode 前のレベルにある、表示されているツリー ノードを取得します。
<気になること>
私はTreeViewを使って階層構造のファイルの読み書きする時、Delphi7までは、TTreeNodeのLevelというプロパティを多用してきましたが、それが見当たりません。 その代わりになるかどうかわかりませんが、FullPathというプロパティがあります。 今後検討していきたいと思います。
| 固定リンク