110,534
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 检查指定节点下是否存在被选中的节点
/// </summary>
/// <param name="tn"></param>
/// <returns></returns>
private bool IsItemHasChecked(TreeNode tn)
{
if (tn.Nodes.Count > 0)
{
for (int i = 0; i < tn.Nodes.Count; i++)
{
if (tn.Nodes[i].Checked == true)
return true;
else
IsItemHasChecked(tn.Nodes[i]):
}
}
return false;
}
/// 检查指定节点下是否存在被选中的节点
/// </summary>
/// <param name="tn"></param>
/// <returns></returns>
private bool IsItemHasChecked(TreeNode tn)
{
for (int i = 0; i < tn.Nodes.Count; i++)
{
if (tn.Nodes[i].Checked == true)
return true;
else
{
if (IsItemHasChecked(tn.Nodes[i]) == true)
return true;
}
}
return false;
}
代码没有测过,但是差不多应该是这个逻辑了,另外参数tn没有判断是否为null
class myE :Exception
{
}
private bool IsItemHasChecked(TreeNode tn)
{
try
{
InternalIsItemHasChecked(tn);
}
catch(myE )
{
return true;
}
return false;
}
private bool InternalIsItemHasChecked(TreeNode tn) { if (tn.Nodes.Count > 0) { for (int i = 0; i < tn.Nodes.Count; i++) { if (tn.Nodes[i].Checked == true) throw new myE(); else InternalIsItemHasChecked(tn.Nodes[i]): } } return false; }
private static Boolean boolean=false;
private bool IsItemHasChecked(TreeNode tn)
{
if (tn.Nodes.Count > 0)
{
for (int i = 0; i < tn.Nodes.Count; i++)
{
if (tn.Nodes[i].Checked == true)
{
boolean = true;
}
else{
boolean = IsItemHasChecked(tn.Nodes[i]);
}
if(boolean) break;
}
}
return boolean;
}
这样 private static Boolean boolean=false;
private bool IsItemHasChecked(TreeNode tn)
{
if (tn.Nodes.Count > 0)
{
for (int i = 0; i < tn.Nodes.Count; i++)
{
if (tn.Nodes[i].Checked == true)
{
boolean = true;
break;
}
else
IsItemHasChecked(tn.Nodes[i]);
}
}
return boolean;
}
- -这样应该行