DotNetBar的使用(四)TreeView
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