程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> DevExpress完成禁用TreeListNode CheckBox的辦法

DevExpress完成禁用TreeListNode CheckBox的辦法

編輯:C#入門知識

DevExpress完成禁用TreeListNode CheckBox的辦法。本站提示廣大學習愛好者:(DevExpress完成禁用TreeListNode CheckBox的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是DevExpress完成禁用TreeListNode CheckBox的辦法正文


許多時刻在停止C#項目標現實開辟中,會須要依據前提來設置節點弗成勾選,檢查DevExpress文檔發明經由過程其CustomDrawNodeCheckBox和BeforeCheckNode事宜組合應用可以到達,普通設置節點弗成以勾選的規矩是一樣的,所以對代碼停止略微封裝。本文實例就展現了DevExpress完成禁用TreeListNode CheckBox的辦法。詳細以下:

重要功效代碼以下:

/// <summary>
/// 禁用CheckBox
/// 解釋
/// 在CustomDrawNodeCheckBox事宜中應用
/// </summary>
/// <param name="tree">TreeList</param>
/// <param name="conditionHanlder">拜托</param>
/// <param name="e">CustomDrawNodeCheckBoxEventArgs</param>
public static void DisabledCheckBox(this TreeListNode tree, Predicate<TreeListNode> conditionHanlder, CustomDrawNodeCheckBoxEventArgs e)
{
  if (conditionHanlder(e.Node))
  {
 e.ObjectArgs.State = ObjectState.Disabled;
  }
}
/// <summary>
/// 制止操作節點CheckBox
/// 解釋
/// 在BeforeCheckNode事宜中應用
/// </summary>
/// <param name="tree">TreeListNode</param>
/// <param name="conditionHanlder">拜托</param>
/// <param name="e">CheckNodeEventArgs</param>
public static void DisabledSetCheckBox(this TreeListNode tree, Predicate<TreeListNode> conditionHanlder, CheckNodeEventArgs e)
{
  if (conditionHanlder(e.Node))
  {
 e.CanCheck = false;
  }
}

應用示例以下:

/// <summary>
/// CustomDrawNodeCheckBox事宜
/// </summary>
void LHTree_CustomDrawNodeCheckBox(object sender, CustomDrawNodeCheckBoxEventArgs e)
{
  e.Node.DisabledCheckBox(DisableNodeCheckBoxRule, e);
}
/// <summary>
/// BeforeCheckNode事宜
/// </summary>
void LHTree_BeforeCheckNode(object sender, CheckNodeEventArgs e)
{
  e.Node.DisabledSetCheckBox(DisableNodeCheckBoxRule, e);
}
/// <summary>
/// Disable TreeListNode規矩
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
private bool DisableNodeCheckBoxRule(TreeListNode node)
{
  bool _disable = false;
  if (OpLampCfgList.Count > 0)
  {
 string _cabId = OpLampCfgList[0].CabID;
 NodeType _curType = node.GetNodeType();
 if (_curType == NodeType.Lamp)//當節點是燈類型且父節點KEYID等於_cabId時刻,屏障Checkbox
 {
   _disable = node.ParentNode.ParentNode.GetKeyID().Equals(_cabId);
 }
 if (_curType == NodeType.Pole)//當節點是桿類型且父節點KEYID等於_cabId時刻,屏障Checkbox
 {
   _disable = node.ParentNode.GetKeyID().Equals(_cabId);
 }
 if (_curType == NodeType.Cab && node.GetKeyID().Equals(_cabId))//當節點是箱類型KEYID等於_cabId時刻,屏障Checkbox
 {
   _disable = true;
 }
 if (_curType == NodeType.Area || _curType == NodeType.CabsGroupRoot)//當節點類型等於地區或許根節點時刻,屏障Checkbox
 {
   _disable = true;
 }
  }
  return _disable;
}

代碼運轉後果以下:

願望本文代碼能對年夜家有所贊助!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved