DotNetBar的使用(四)TreeView
treeView控件的基本屬性方法
1、添加根節點的語句
treeview1.nodes.add();
2、添加子節點的方法
Treeview1.selectednode.nodes.add();
3、ExpandAll()
展開樹控件的所有節點
4、CollapseAll()摺疊所有節點
5、獲取被選中的節點treeView1.selectednode 返回類型treenode
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