private void InitializeTree() { List <MyParameter> para = new List <MyParameter>(); para.Add("@Menu_Id", DbType.String, SysPage.Menu_Id, null); DataTable dt_Sys_WorkSet = BaseService.Open("SystemMenu_Tree", para); List <Sys_Tree> sys_Trees = EntityHelper.GetEntities <Sys_Tree>(dt_Sys_WorkSet); foreach (Sys_Tree sys_Tree in sys_Trees) { Control[] controls = this.Controls.Find(sys_Tree.Tree_Grid, true); if (controls.Length > 0) { if (controls[0].GetType().Equals(typeof(GridControl))) { GridControl grid = (GridControl)controls[0]; DevExpress.XtraTreeList.TreeList tree = new DevExpress.XtraTreeList.TreeList(); tree.BeginUpdate(); tree.ParentFieldName = sys_Tree.Tree_Parent; tree.KeyFieldName = sys_Tree.Tree_Key; //tree.PreviewFieldName tree.CheckBoxFieldName = sys_Tree.Tree_Check; DevExpress.XtraTreeList.Columns.TreeListColumn col = new DevExpress.XtraTreeList.Columns.TreeListColumn(); col.FieldName = sys_Tree.Tree_Display; col.Name = "t_" + sys_Tree.Tree_Display; col.Visible = true; col.VisibleIndex = 1; tree.OptionsBehavior.Editable = false; if (!sys_Tree.Tree_ReadOnly) { tree.DoubleClick += BindTreeEditor; tree.OptionsDragAndDrop.DragNodesMode = DevExpress.XtraTreeList.DragNodesMode.Single; } else { GridView abv = (GridView)grid.MainView; abv.OptionsBehavior.Editable = false; abv.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.False; abv.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.False; tree.OptionsDragAndDrop.DragNodesMode = DevExpress.XtraTreeList.DragNodesMode.None; } tree.Columns.Add(col); tree.OptionsView.ShowIndicator = false; tree.OptionsView.ShowColumns = false; tree.OptionsView.ShowHorzLines = false; tree.OptionsView.ShowVertLines = false; tree.OptionsView.ShowCheckBoxes = !string.IsNullOrEmpty(sys_Tree.Tree_Check); tree.Name = "tree_" + grid.Name; tree.BorderStyle = BorderStyles.NoBorder; grid.Controls.Add(tree); //tree.PopulateColumns(); tree.BringToFront(); tree.Dock = DockStyle.Fill; tree.GotFocus += Control_GotFocus; grid.DataSourceChanged += BindTreeDataSource; tree.Visible = !sys_Tree.Tree_Hide; tree.EndUpdate(); //切换视图 Control grp = grid.Parent; if (grp.GetType() == typeof(GroupControl)) { //grp.DoubleClick += DoNothing; grp.DoubleClick += delegate { tree.Visible = !tree.Visible; }; } } } } }