DataGridView DataError事件......触发它的原因

时间:2013-11-20 19:40:41

标签: c# datagridview

所以我有一个用户正在输入数据的DGV。数据应该是数字但我知道需要处理空格和字母字符。

我没有输入任何CellValidating或CellFormatting事件,所以我想通过DGV的数据错误处理程序来处理它。

我将以下代码放在我的DGV中,但是iut似乎没有正常启动。我在Debug中运行时得到错误文本,但这是非常技术性的“Syste,.Format Exception ...”文本,我不希望用户看到它。我会在我的DataError事件处理程序中获取消息框。

private void grd1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
        {

            MessageBox.Show("Error happened " + anError.Context.ToString());

            if (anError.Context == DataGridViewDataErrorContexts.Commit)
            {
                MessageBox.Show("Commit error");
            }
            if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
            {
                MessageBox.Show("Cell change");
            }
            if (anError.Context == DataGridViewDataErrorContexts.Parsing)
            {
                MessageBox.Show("parsing error");
            }
            if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
            {
                MessageBox.Show("leave control error");
            }

            if ((anError.Exception) is ConstraintException)
            {
                DataGridView grd1 = (DataGridView)sender;
                grd1.Rows[anError.RowIndex].ErrorText = "an error";
                grd1.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";

                anError.ThrowException = false;
            }
        }

那么为什么我的DataError事件处理程序不会触发错误?我是否需要输入强制触发的代码(我以为它会在出错时自动触发)?

0 个答案:

没有答案