using DevExpress.XtraEditors; using DevExpress.XtraTreeList; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Gs.DevApp { public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm { public XtraForm1() { InitializeComponent(); tlMenu.CustomDrawNodeCheckBox += TreeList1_CustomDrawNodeCheckBox; getTree(); // 初始化TreeList //tlMenu.BestFitColumns(); //tlMenu.EndInit(); //// 设置复选框显示模式 //tlMenu.OptionsBehavior.Editable = true; //this.tlMenu.OptionsView.ShowCheckBoxes = true; //tlMenu.OptionsSelection.MultiSelect = true; ////tlMenu.OptionsSelection.MultiSelectMode = TreeListMultiSelectMode.; // 添加GetShowCheckBox事件处理器 tlMenu.OptionsBehavior.Editable = true; tlMenu.OptionsSelection.EnableAppearanceFocusedCell = false; tlMenu.OptionsSelection.MultiSelect = true; tlMenu.OptionsSelection.MultiSelectMode = TreeListMultiSelectMode.CellSelect; // this.tlMenu.GetChildAtPoint += new DevExpress.XtraTreeList.GetChildNodeCheckBoxEventHandler(this.treeList_GetChildNodeCheckBox) } private void TreeList1_CustomDrawNodeCheckBox(object sender, DevExpress.XtraTreeList.CustomDrawNodeCheckBoxEventArgs e) { // 判断当前节点是否为叶子节点(无子节点) if (e.Node.Nodes.Count == 0) { // 允许绘制复选框(默认行为) } else { // 取消绘制复选框 e.Handled = true; } } // 可选:处理节点展开事件,确保动态加载的子节点生效 private void treeList1_BeforeExpand(object sender, BeforeExpandEventArgs e) { // 若子节点是动态加载的,在此处加载数据 // LoadChildNodes(e.Node); } /// /// 读取列表 /// private void getTree() { var pgq = new PageQueryModel(1, 999999, "a.idx"); var json = JsonConvert.SerializeObject(pgq); try { var strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListPage", json); var dd = UtilityHelper.ReturnToTablePage(strReturn); var dt = dd.rtnData.list; tlMenu.DataSource = dt; tlMenu.KeyFieldName = "guid"; tlMenu.ParentFieldName = "upGuid"; tlMenu.Tag = "name"; tlMenu.EndUpdate(); this.tlMenu.CollapseAll(); tlMenu.OptionsBehavior.Editable = true; tlMenu.OptionsBehavior.AllowRecursiveNodeChecking = false; } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } } }