日期:2014-05-18 浏览次数:21043 次
/// <summary> /// 获取某个节点的状态。 /// </summary> /// <param name="node">要获取状态的节点</param> /// <returns>当前节点的状态</returns> //*********************************************************** //* 函数名称:GetChecked //* 功能描述:获取当前节点的状态 //* 参 数:无 //* 返 回 值: //* 作 者: //* 创建日期:2004-06-28 //*********************************************************** public EnumCheckState GetChecked(TreeNode node) { TVITEM tTVITEM = new TVITEM(); int iState; int iResult; tTVITEM.mask = (int)(TVHit.OnItemButton | TVHit.OnItemIndent); tTVITEM.hItem = node.Handle; tTVITEM.stateMask = (int)(TVHit.TVIS_STATEIMAGEMASK); tTVITEM.state = 0; iResult = SendMessage(this.Handle, TreeViewMessages.TVM_GETITEM, 0, ref tTVITEM); if (iResult != 0) { iState = tTVITEM.state; iState = iState / 0xFFF; return (EnumCheckState)(iState); } else { return EnumCheckState.Unchecked; } } /// <summary> /// 设置节点状态。 /// </summary> /// <param name="node">要设置的节点</param> /// <param name="state">设置的状态</param> //*********************************************************** //* 函数名称:SetChecked //* 功能描述:设置节点的状态 //* 参 数:无 //* 返 回 值: //* 作 者: //* 创建日期:2004-06-28 //*********************************************************** public void SetChecked(TreeNode node, EnumCheckState state) { CheckNode(node, state); if (m_bThreeState && !m_bRadioCheck) { ChangeParent(node.Parent); } } /// <summary> /// 设置一个节点的状态,且当前节点的父节点和子节点状态不改变。 /// </summary> /// <param name="node">要设置的节点</param> /// <param name="state">设置的状态</param> //*********************************************************** //* 函数名称:SetInternalChecked //* 功能描述:改变当前节点的状态 //* 参 数:无 //* 返 回 值: //* 作 者: //* 创建日期:2004-06-28 //*********************************************************** public void SetInternalChecked(TreeNode node, EnumCheckState state) { int iState = (int)state; TVITEM tTVITEM = new TVITEM(); tTVITEM.mask = (int)(TVHit.OnItemButton | TVHit.OnItemIndent); tTVITEM.hItem = node.Handle; tTVITEM.stateMask = (int)TVHit.TVIS_STATEIMAGEMASK; tTVITEM.state = iState * 0x1000; SendMessage(this.Handle, TreeViewMessages.TVM_SETITEM, 0, ref tTVITEM); base.OnAfterCheck(new System.Windows.Forms.TreeViewEventArgs(node)); } #endregion #region "重写方法" /// <summary> /// 重写控件的 Refresh 方法,重绘控件 /// </summary> //*********************************************************** //* 函数名称:Refresh //* 功能描述:重写Refresh方法 //* 参 数:无 //* 返 回 值: //* 作 者: //* 创建日期:2004-06-28 //**********************************************