如何取消Devexpress Winforms GridControl CellValueChanged事件


private void MyGrid_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{                     
//IS_CHECK is a checkbox
if (e.Column.FieldName == "IS_CHECK")
{
if (XMsgBx.ShowInfoYesNo("Asking a Approval") == System.Windows.Forms.DialogResult.Yes)
{
//if a user clicks ok then it's ok
}
else
{
//I want to do something like e.Cancel
//Want to Cancel the input data from the user
}               
}
} 

我搜索到Devexpress GridControl中的CellValueChanging((和CellValueChanged((事件不允许程序员在调用事件时无法使用用户键入。我发现使用ShowingEditor、ValidatingEditor、RepositoryItem不适合我面临的问题。有没有办法在给定的代码上以任何方式取消用户的输入数据?请帮忙。。

2022-02-04在下方编辑

为了澄清我的问题,我有一个名为";IS_ CHECK";。当我第一次单击时,我想显示消息框,询问用户是否保存某个菜单。如果用户单击"否",则不应选中该复选框。如果用户单击"是",则应保存内容菜单。我已经知道取消e的东西不存在了。

您可以处理网格视图的ShowingEditor事件。此事件发生在单元格的编辑器即将打开时,允许您取消此操作。

private void gridView1_ShowingEditor(object sender, CancelEventArgs e) {
if(gridView1.FocusedColumn.FieldName == "YOUR_FIELD_NAME")
if(MessageBox.Show("Do you want to change the value?", "Warning", MessageBoxButtons.YesNo) == DialogResult.No)
e.Cancel = true; }

最新更新