关闭表格时触发DataGridView CellValidated事件

高新技术中心

情况:我已经将DataGridView放置在窗体上。在DataGridView-Object中,我会检查某些单元格-例如,如果用户输入的数量不大于100。当用户使用Enter,Tab或箭头键离开单元格时,将执行检查。

问题:一切工作正常,但是当光标位于单元格中并且值大于100并且用户按下窗体上的“ X”按钮(关闭按钮)时,仍然显示消息。

问题:当用户单击表单上的X按钮时,如何防止出现MessageBox?

代码样例:

private void dgv_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                const int nColumn = 2;
                if (!e.ColumnIndex.Equals(nColumn))
                {
                    return;
                }

                if (e.ColumnIndex.Equals(nColumn))
                {
                    double nMengeSource;
                    double.TryParse(dgv.Rows[e.RowIndex].Cells[fldMenge.Name].Value.ToString(),
                        out nMengeSource);

                    double nMengeLos;
                    double.TryParse(dgv.Rows[e.RowIndex].Cells[fldMengeLos.Name].Value.ToString(),
                        out nMengeLos);

                    // prüfe ob erfasste Menge die Menge im Los überschreitet
                    if (nMengeSource > nMengeLos)
                    {
                        var sMsg = String.Empty;
                        sMsg += "Warning! Value is greather than allowed!";
                        MessageBox.Show(sMsg, "Check...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception ex)
            {
                Dialog.SetDefaultCursor();
                MessageBox.Show(MethodBase.GetCurrentMethod().Name + @"\n\n" + ex + @"\n\n" + ex.Message);
            }
        }
喔喔喔喔

通过单击XDataGridViewCell失去焦点,这将触发对单元格的验证。您想取消显示,但Form关闭时才显示但是,您不能这样做,Form.FormClosing因为它是验证发生触发的但是您可以使用以下方法进行操作:

protected override void WndProc(ref Message m)
{
  switch (((m.WParam.ToInt64() & 0xffff) & 0xfff0))
  {
    case 0xf060:
      this.dataGridView1.CausesValidation = false;
      break;
  }

  base.WndProc(ref m);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关闭表格时触发DataGridView CellValidated事件

来自分类Dev

ionic - 在滑动菜单关闭时触发事件

来自分类Dev

在进程窗口关闭时触发事件,而不是在进程退出时触发事件

来自分类Dev

关闭标签页/浏览器时触发Angularjs事件

来自分类Dev

SQLAlchemy事件触发Celery任务时,连接已关闭

来自分类Dev

在启动多选对话框关闭时触发事件

来自分类Dev

DataGridView CellContentClick事件未触发

来自分类Dev

事件触发时触发Promise

来自分类Dev

当浏览器选项卡或窗口关闭时,是否会触发一般事件?

来自分类Dev

关闭侧边栏时不会触发Opera侧边栏onBlur事件

来自分类Dev

DataGridView NumericUpDown触发什么事件?

来自分类Dev

关闭/销毁插件后如何触发事件?

来自分类Dev

ngDialog关闭事件触发多次(AngularJS)

来自分类Dev

触发onPaste事件时防止keyUp事件

来自分类Dev

触发事件时的indexOf错误

来自分类Dev

单击菜单时触发事件

来自分类Dev

在加载时触发绑定事件

来自分类Dev

Handsontable:事件触发时的setDataAtCell

来自分类Dev

单击时未触发事件

来自分类Dev

关闭时获取UIPopoverPresentationController的事件

来自分类Dev

显示关闭时触摸事件

来自分类Dev

窗口关闭时获取事件

来自分类Dev

窗口关闭时如何获得关闭事件?

来自分类Dev

在文件流上的数据事件之前关闭事件触发器

来自分类Dev

从表格2开始在表格1上关闭事件

来自分类Dev

从表格2开始在表格1上关闭事件

来自分类Dev

Bootstrap 模态关闭事件不会触发模态覆盖的关闭

来自分类Dev

加载事件时未填充DataGridView

来自分类Dev

DataGridView单击事件并不总是会触发