通过启用WinForms Data Grid v14.2属性从GridOptionsMenu.ShowConditionalFormattingItem开始,Conditional Formatting功能可用。
通过右键单击任何列标题,将显示条件格式菜单项,允许最终用户将条件格式应用于网格列。
我的问题是,是否可以禁用特定列的功能?我正在考虑让菜单项变灰,或者根本没有(通过以某种方式隐藏它)在项目列表中。
我知道通过将格式应用于整个行,可以通过放在其他列上的条件格式来格式化特定列的单元格。但是,我的目标只是确保用户无法访问特定列的功能。
答案 0 :(得分:0)
您可以使用GridView.PopupMenuShowing事件删除相应的菜单项:
using System.Windows.Forms;
using DevExpress.XtraGrid.Localization;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
namespace WindowsFormsApplication2 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
gridView1.PopupMenuShowing += gridView1_PopupMenuShowing;
}
void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
var columnMenu = e.Menu as GridViewColumnMenu;
if(columnMenu != null && columnMenu.Column == this.gridColumn1) {
var conditionalFormattingItem = e.Menu.Items.FirstOrDefault(x => object.Equals(x.Tag, GridStringId.MenuColumnConditionalFormatting));
if(conditionalFormattingItem != null)
conditionalFormattingItem.Visible = false;
}
}
}
}