csdn上的例子 (仅供参考): private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem item = (TreeViewItem)treeView1SelectedItem;
TreeViewItem it = new TreeViewItem();
if (!itemHasItems)
{
if (itemParent != null && (itemParent is TreeViewItem))
{
it = (TreeViewItem)itemParent;
MessageBoxShow(itHeaderToString() + (itemParent is TreeViewItem)ToString());
}
else
{
MessageBoxShow(itemHeaderToString());
}
}
}
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemWindowsForms;
namespace SuijiNumber
{
class Program
{
static void Main(string[] args)
{
string searchKey = "财政局";
TreeNode parentNode = null; // 注意要设置该值,使其不能为空,一般为一棵树的根结点。
TreeNode node = BianLi(parentNode, searchKey);
if (node != null)
{
// 则找到
}
}
static TreeNode BianLi(TreeNode parentNode,string searchKey)
{
foreach (TreeNode node in parentNodeNodes)
{
if (nodeText == searchKey)
{
return node;
}
else if (nodeNodesCount >1)
{
for (int i = 0; i < nodeNodesCount; i++)
{
BianLi(nodeNodes[i], searchKey);
}
}
}
return null;
}
}
}
很简单,你的问题已经隐藏在你的疑惑的地方了
treeview 鼠标点击一个节点,那么这个节点是处于选中状态的,它会有明显的蓝色背景,而且只有一个处于选中状态
treeviewSelectNode 就是选中的节点
此为方法一
方法二:设置treeview 有一个属性,是否显示复选框,好像叫做ShowCheckBox 设置为true,你每次勾选节点前面的复选框,然后怎么判断是否选中呢?
循环所有根节点 foreach node in rootchildnode
if(nodeChecked)
//这个node就是你需要在下面添加子节点的节点
分清楚selected 和checked 就可以帮你解决你疑惑的地方
treeview本身就有单击节点触发事件
在visualstudio里,选中treeview控件,找到它的属性框里,闪电的标志。
有nodemouseclick或者是类似itemclick的事件
treeviewselectednode
获取的就是选中的节点的信息
先定义一个node
var
node:TTreeNode;
然后你获取你所选中的节点
node:=TreeViewSelected;
它的父节点的名称就是
nodeParentText
它的祖父节点的名称就是
nodeParentParentText
以此类推
注意,在访问父节点之前要判断是否存在
if
nodeParent<>nil
then
begin
end;
玩好treeview的几个要点
1Node, nodes,parentNode(父,子,爷);
子=NodeNodes;
爷=NodeParentNode;
2使用前最好判断是否为空,否则很容易报空指针错误;
以上就是关于wpf中选中treeview的某个子节点后获取子节点所在的所有父节点的内容用于数据库查询全部的内容,包括:wpf中选中treeview的某个子节点后获取子节点所在的所有父节点的内容用于数据库查询、怎么循环遍历TreeView的子节点获取子节点的值、C#动态给treeview控件添加节点和子节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)