DotNetBar的使用(四)TreeView
DotNetBar的使用(四)TreeView
treeView控制元件的基本屬性方法
1、新增根節點的語句
treeview1.nodes.add();
2、新增子節點的方法
Treeview1.selectednode.nodes.add();
3、ExpandAll()
展開樹控制元件的所有節點
4、CollapseAll()摺疊所有節點
5、獲取被選中的節點treeView1.selectednode
6、checkboxes true顯示覆選框 false 不顯示覆選框(預設值)
1、介面設計
2、【新增根節點】程式碼
private void buttonX2_Click_2(object sender, EventArgs e)
{
//要新增的節點名稱為空,即文字框是否為空
if(string.IsNullOrEmpty(textBoxX1.Text.Trim()))
{
MessageBox.Show("要新增的節點名稱不能為空!
return;
}
//新增根節點
treeView1.Nodes.Add(textBoxX1.Text.Trim());
textBoxX1.Text = "";
}
【新增子節點】程式碼
private void buttonX3_Click(object sender, EventArgs e)
{
//要新增的節點名稱為空,即文字框是否為空
if (string.IsNullOrEmpty(textBoxX1.Text.Trim()))
{
MessageBox.Show("要新增的節點名稱不能為空!");
return;
}
if(treeView1.SelectedNode==null)
{
MessageBox.Show("請選擇要新增子節點的節點!");
return;
}
treeView1.SelectedNode.Nodes.Add(textBoxX1.Text.Trim());
textBoxX1.Text = "";
}
【展開所有子節點】程式碼
private void buttonX5_Click(object sender, EventArgs e)
{
treeView1.ExpandAll();
}
【新增節點】程式碼
private void buttonX4_Click(object sender, EventArgs e)
{
List<TreeNode> myNode = new List<TreeNode>(); //樹節點型別列表
TreeNode node1 = new TreeNode(); //樹節點
node1.Text = "河南"; //設定文字
myNode.Add(node1); //新增節點至列表
TreeNode node2 = new TreeNode();
node2.Text = "河北";
myNode.Add(node2);
TreeNode node3 = new TreeNode();
node3.Text = "山東";
myNode.Add(node3);
foreach (TreeNode node in myNode) //遍歷列表
{
treeView1.Nodes.Add(node); //新增至根節點
}
}
3、用遞迴的方法把父節點的選中狀態傳遞給子節點
/// <summary>
/// 遞迴函式 遞迴的吧父親接到的選擇狀態傳遞給孩子結點
/// </summary>
/// <param name="treeNode">當前結點</param>
/// <param name="check">當前結點的選擇狀態</param>
/// 該函式參考http://blog.csdn.net/lilongherolilong/article/details/6689642
private void RefreshChildNode(TreeNode treeNode, bool check)
{
foreach (TreeNode node in treeNode.Nodes)
{
node.Checked = check;
if (node.Nodes.Count > 0)
{
RefreshChildNode(node, check);
}
}
}
註釋:該函式的功能,把父節點的選中狀態,傳遞給該父節點下的所有子節點,該函式在treeView的aftercheck事件中呼叫
private void RefreshChildNode(TreeNode treeNode, bool check) //引數分別是父節點和其狀態
{
foreach (TreeNode node in treeNode.Nodes) //對父節點的子節點進行迴圈
{
node.Checked = check; //改變狀態
if (node.Nodes.Count > 0) //若子節點還有子節點,則遞迴迴圈
{
RefreshChildNode(node, check);
}
}
}
4、結果顯示
參考資料:C# TreeView 控制元件的綜合使用方法
https://www.cnblogs.com/net064/p/5534697.html
地理資訊科學
Writed By NX
QQ:1051926720