如何取消Devexpress Winforms GridControl CellValueChanged事件?

How to Cancel Devexpress Winforms GridControl CellValueChanged event?

 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”的复选框名称。当我第一次点击时,我想显示消息框来询问用户是否保存某个菜单。如果用户单击 'No',则不应选中该复选框。如果用户单击 'Yes',则应该保存 something 菜单。我已经知道 e.Cancel 东西不存在。

您可以处理 grid view 的 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; }