如何取消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; }
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; }