问题原因很简单一个父节点如果拖动到子节点中就会出错.
如何判断两者关系,Nodes.Contains只能判断一层,如果有多层如何判断?写一个判断函数很简单,只是想知道有没有提供现有功能.
如何判断两者关系,Nodes.Contains只能判断一层,如果有多层如何判断?写一个判断函数很简单,只是想知道有没有提供现有功能.
解决方案 »
- |ZYCWPF|以前DLL全是用DeBug进行编译的,然后现在程序引入这些DLL,最终发布要发布成Relese的话,原来那些Debug的Dll要不要重新编译?
- 数据上传
- 大家帮帮忙treeview的问题?
- C#串口数据读取很慢 附源码(分不多请大家见谅)
- help
- c#中如何把查询结果赋值给变量?
- C#中使用mybatis连接oracle数据库,在客户端可不可以不安装oracle数据库或oracle客户端
- C# serialport 串口 接收数据不全
- asp中的CreateObject是怎么回事,C#又怎么使用com组件
- 棘手的问题,请高高手回答!愿给300分!
- C#做MIS系统单据打印使用什么控件
- 用Application在两个网页中传数据丢失问题
给你一个函数吧:
//-2=无关系,0=相同,-1=nID是nID2的父节点,1=nID2是nID的父节点
//该方法写的相对简单,不能直接套用,大致用个思路,因为对节点比较的部分各有不同。
private int ChkLineal(string nId, string nId2)
{
//if DealerId equals DEALERID(node)
if (nId.ToString() == nId2.ToString())
return 0;
//if DealerId is the parent(grand...) of the DEALERID
if (ChkPC(nId, nId2))
return -1;
//if DealerId is the son(grand...) of the DEALERID
if (ChkPC(nId2, nId))
return 1;
return -2;
} private bool ChkPC(string parentid, string childid)
{
bool iResult = false;
string strExpr = " parent_id = " + parentid;
DataRow[] drs = dtDealers.Select(strExpr);
foreach (DataRow dr in drs)
{
if (dr["nid"].ToString() == childid)
{
iResult = true;
}
else
{
if (ChkPC(dr["nid"].ToString(), childid))
iResult = true;
}
}
return iResult;
}