DevExpress自定义XtraGrid列菜单

先看下面的图

1.自定义的列菜单

01

2.XtraGrid自带的列菜单

02

3.混合的列菜单

03

实现代码:

 

代码
private void gvUploadData_ShowGridMenu(object sender, GridMenuEventArgs e)
{
if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
{
DevExpress.XtraGrid.Menu.GridViewColumnMenu menu 
= e.Menu as GridViewColumnMenu;
//清空自带的菜单项

//menu.Items.Clear();
if (menu.Column != null)
{
// 添加自定义的菜单项

menu.Items.Add(CreateMenuItem(
"编辑当前列", menu.Column, icList.Images[1]));
menu.Items.Add(CreateMenuItem(
"锁定当前列", menu.Column, icList.Images[2]));
menu.Items.Add(CreateMenuItem(
"清空当前列", menu.Column, icList.Images[3]));
}
}
}

DXMenuItem CreateMenuItem(
string caption, GridColumn column, Image image)
{
DXMenuItem item 
= new DXMenuItem(caption, new EventHandler(OnFixedClick), image);
item.Tag 
= new MenuInfo(column);
return item;
}

void OnFixedClick(object sender, EventArgs e)
{
DXMenuItem item 
= sender as DXMenuItem;
MenuInfo info 
= item.Tag as MenuInfo;
if (info == nullreturn;
//string s = info.Column.FieldName;

//在这里进行业务处理
}

 

 

还有一个类

 

class MenuInfo
{
public GridColumn Column;
public MenuInfo(GridColumn column)
{
this.Column = column;
}
}

 

 

参考了以下内容:

http://www.devexpress.com/Help/?document=XtraGrid/CustomDocument709.htm

http://www.devexpress.com/Help/?document=XtraGrid/CustomDocument3505.htm&levelup=true

posted @ 2010-01-30 06:13  滴水铭心  阅读(779)  评论(0编辑  收藏  举报