DevExpress控件的使用(二)

本文详细介绍了如何在树形视图中实现右键菜单功能及节点选择,以及如何在Grid控件中进行拖放操作、自定义节点样式和限制节点选择。同时涉及了TabControl、RadioButton、CheckBox、ColorEdit、LayoutControl和GridControl的高级应用,展示了这些控件在实际项目中的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上篇.

10.treeView

为tree节点加右键菜单并选中该节点

       private void treeList1_MouseDown(object sender, MouseEventArgs e)

       {

           if (e.Button == MouseButtons.Right)

           {

               DevExpress.XtraTreeList.TreeListHitInfo hi =treeList1.CalcHitInfo(e.Location);

                if (hi.Node != null &&hi.Node.ImageIndex == 5) //叶子节点的ImageIndex== 5

                {

                    TreeListNode node =treeList1.FindNodeByID(hi.Node.Id);

                    treeList1.FocusedNode =node;

 

                   this.popupMenu1.ShowPopup(MousePosition);

                }

           }

       }

treeList间的拖放,如从treeList1拖一个节点到treeList2上的一个节点上。

 

1.将treeList1的DragNodes属性设为true

 

treeList1.OptionsBehavior.DragNodes = true;

 

2.treeList2的事件处理:

 

private void treeList1_DragEnter(objectsender, DragEventArgs e)

{

     e.Effect = DragDropEffects.Copy;

}

 

private void treeList1_DragDrop(objectsender, DragEventArgs e)

{

     object obj = e.Data.GetData(typeof(TreeListNode));

     DevExpress.XtraTreeList.TreeListHitInfo hi =treeList1.CalcHitInfo(treeList1.PointToClient(new Point(e.X, e.Y)));

     TreeListNode newNode = treeList1.AppendNode(new object[] {((TreeListNode)obj).GetValue(this.treeListColumn1) }, hi.Node);

     newNode.Tag = ((TreeListNode)obj).Tag;            

}

 

private voidtreeListForm_CustomDrawNodeCell(object sender,DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e)

{

         if(e.Node.Checked)

         {

                   e.Appearance.Font= new Font(DevExpress.Utils.AppearanceObject.DefaultFont, FontStyle.Bold);

         }

}

 

//勾选节点的限制

private voidtreeListGroup_BeforeCheckNode(object sender,DevExpress.XtraTreeList.CheckNodeEventArgs e)

{

         if(e.Node.ImageIndex == USERICON)

         {

                   e.CanCheck= false;

         }

         else

         {

                   e.CanCheck= true;

                   //三种勾选状态只使用勾选/不勾选

                   e.State= (e.PrevState == CheckState.Checked ? CheckState.Unchecked :CheckState.Checked);

         }

}

 

11.XtraTabControl 

DevExpress.XtraTab.XtraTabControlxtraTabControl = new DevExpress.XtraTab.XtraTabControl();

//添加Tab

xtraTabControl.TabPages.Add("page1");

//清空TabPage

xtraTabControl.TabPages.Clear();

//设置TabPage不可见

xtraTabControl.TabPages[i].PageVisible =false;

//设置TabPage不可用

xtraTabControl.TabPages[i].PageEnable =false;

//设置TabPage下的控件不可用

xtraTabControl.TabPages.Controls[i].Enable= false;

12.RadioButton/CheckBox

DevExpress.XtraEditors.CheckEdit

//设置类型

Properties.CheckStyle = Standard/Radio/...

//设置一组单选按钮

Properties.RadioGroupIndex设置为同一个数字

13.ColorEdit

DevExpress.XtraEditors.ColorEdit

//设置是否显示系统颜色和Web颜色

Properties.ShowSystemColors = false;

Properties.ShowWebColors = false;

//取选中颜色值

Color color = int i = colorEdit1.Color;

//换算成int型,便于保存到文件

int i = colorEdit1.Color.ToArgb();

14.LayoutControl

//多个layoutcontrol选中后右键-Group可将所选控件置为一组

this.layoutControlGroup1.Expanded = true;//展开组,设为false为折叠组

this.layoutControlGroup1.ExpandButtonVisible= true;//使折叠按钮可见

this.layoutControlGroup1.ExpandOnDoubleClick= true;//双击展开、折叠组

//TextVisible属性设置Item前方的文字说明,一般设为false

15.GridControl

//绑定数据

 protected override void InitMDBData(stringconnectionString) 

{

    DataSet ds = new DataSet();

    System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter = newSystem.Data.OleDb.OleDbDataAdapter("SELECT * FROM " + tblName,connectionString);

    oleDbDataAdapter.Fill(ds, tblName);

    gridControl1.DataSource = ds.Tables[tblName];

    gridControl1.MainView.PopulateColumns();

}

//可以添加自定义EmbededNavigator的CustomButtons:

this.efDevGridOth.EmbeddedNavigator.Buttons.CustomButtons.AddRange(newNavigatorCustomButton[] {

  new NavigatorCustomButton(5, "保存"),

  new NavigatorCustomButton(6, "返回")              

  });

//设置Grid的Style,对应行的新增/修改状态:

private void gridView1_RowStyle(objectsender, RowStyleEventArgs e)

{

 try

 {

  if(this.gridView1.DataRowCount < 1) return;

  if(e.RowHandle < 0)

  {

  return;

  }

  if(((DataRowView)this.gridView1.GetRow(e.RowHandle)).Row.RowState ==DataRowState.Modified)

  {

  e.Appearance.Font = new Font(e.Appearance.Font, FontStyle.Bold);

  }

  if(((DataRowView)this.gridView1.GetRow(e.RowHandle)).Row.RowState ==DataRowState.Added)

  {

  e.Appearance.ForeColor = Color.Red;

  }

 }

 catch (Exception ex)

 {

 this.EFMsgInfo = ex.Message;

 }

}

16.LookUpEditor

//绑定数据

efDevLookUpEditType.Properties.DataSource =dataSet1.Tables[0

efDevLookUpEditType.Properties.Columns.Add(newDevExpress.XtraEditors.Controls.LookUpColumnInfo("CODE"));

efDevLookUpEditType.Properties.Columns.Add(newDevExpress.XtraEditors.Controls.LookUpColumnInfo("CODE_DESC_1_CONTENT"));

efDevLookUpEditType.Properties.ValueMember= "CODE";

efDevLookUpEditType.Properties.DisplayMember= "CODE_DESC_1_CONTENT";

efDevLookUpEditType.EditValue =dataSet1.Tables[0].Rows[0]["CODE"];


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值