none
为何DataGridView的DataError事件在某时刻的触发次数越来越多? RRS feed

  • 问题

  • 我用一个DataGridView与4个dataset建立关系,通过一个可翻页的页面实现(共4页,有上下页按钮)。当用户处于哪个页面,就让DataGridView的datasource与哪个dataset绑

    定。但发现每当触发到DataGridView的DataError事件,里面的自定义的MessageBox的弹出次数等于页面的翻页次数。比如说,我翻页翻了6次,在里面输入错误类型的值,那么触发

    到DataError事件后MessageBox的弹出次数为6次,之后才消失。不知道为什么这么异常。

    相关代码如下:

    数据源绑定的:

    label1.Enabled = true;
                    label1.Text = pageArray[currentPage];
                    if (currentPage == 0)
                    {
                        button2.Enabled = false;
                        button3.Enabled = true;
                    }
                    if (currentPage == 3)
                    {
                        button2.Enabled = true;
                        button3.Enabled = false;
                    }
                    if (currentPage > 0 && currentPage < 3)
                    {
                        button2.Enabled = true;
                        button3.Enabled = true;
                    }
                    dataGridView1.DataSource = ds.Tables[GetSqlString.TableNameArray[currentPage]];

    DataError事件:

    private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)   //当输入单元格的类型错误时调用
            {
                dataGridView1.CausesValidation = true;
                string a = dataGridView1.Columns[e.ColumnIndex].ValueType.ToString();   //获取当前所处字段的类型
                if (MessageBox.Show("请输入数字!", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
    
                    e.Cancel = true;
    
                }
                else
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                    e.Cancel = false;
                }
            }

    2012年5月2日 2:22

答案

  • 你好 能上传一下 你整个测试工程到这吗?

    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    非常不好意思啊!因为之前这个主题很久都没人回复,所以后来自己都没关注了。目前这个主题不需要去研究它,所以不用您帮忙了。谢谢!
    2012年6月4日 6:40

全部回复

  • 你好 能上传一下 你整个测试工程到这吗?

    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年5月3日 8:09
    版主
  • 你好 能上传一下 你整个测试工程到这吗?

    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    非常不好意思啊!因为之前这个主题很久都没人回复,所以后来自己都没关注了。目前这个主题不需要去研究它,所以不用您帮忙了。谢谢!
    2012年6月4日 6:40