AfterCheck
/// <summary> /// 树勾选 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tvCourse_AfterCheck(object sender, TreeViewEventArgs e) { if (e.Action ==TreeViewAction.ByMouse) { if (e.Node.Checked) { SetChildNode(e.Node, true); if (null!= e.Node.Parent) { SetParentNode(e.Node, true); } //获取选中节点值 lstChapterIds.Add(e.Node.Name); this.btnDelRes.Enabled = true; } else { //取消节点选中状态之后,取消所有父节点的选中状态 SetChildNode(e.Node, false); //如果节点存在父节点,取消父节点的选中状态 if (e.Node.Parent != null) { SetParentNode(e.Node, false); } //获取选中节点值 if (lstChapterIds.Contains(e.Node.Name)) { lstChapterIds.Remove(e.Node.Name); if (!lstChapterIds.Any()) { this.btnDelRes.Enabled = false; } } } } }