none
又一个SetCurrentCellAddressCore错误!!! RRS feed

  • 问题

  • 问题描述:我有一个DataGridView在窗体上,在窗体加载时就给它绑定一个DataTalbe作为数据源;

    我想实现的效果是当我把列名为Content的值删除以后,在这一行失去焦点后,自动将这条记录删除,然后重新为DataGridView绑定数据源。

    我是在CellValueChanged事件处理程序中重新绑定数据源的发,结果就抛出" 操作无效,原因是它导致对函数的可重入调用."的异常

     


    李东洋
    2012年1月9日 8:46

答案

  • 我没有出现你的问题:

    namespace WinFormCSharp
    {
        public partial class Form1 : Form
        {
            DataTable dt = null;

            public Form1()
            {
                InitializeComponent();
                dt = new DataTable();
                //自动生成DataTable
                dt.Columns.Add("id"typeof(int));
                dt.Columns.Add("name"typeof(string));

                for (int i = 1i < 11i++)
                {
                    dt.Rows.Add(ii.ToString());
                }
            }

            private void Form1_Load(object senderEventArgs e)
            {
                dataGridView1.DataSource = dt;
            }

            private void dataGridView1_CellValueChanged(object senderDataGridViewCellEventArgs e)
            {
                string s = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString().Trim();

                if (s == "")
                {
                    dt.Rows[e.RowIndex].Delete();
                    dt.AcceptChanges();
                    dataGridView1.DataSource = dt;
                }
            }
        }
    }


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月9日 9:19
    版主

全部回复

  • 我没有出现你的问题:

    namespace WinFormCSharp
    {
        public partial class Form1 : Form
        {
            DataTable dt = null;

            public Form1()
            {
                InitializeComponent();
                dt = new DataTable();
                //自动生成DataTable
                dt.Columns.Add("id"typeof(int));
                dt.Columns.Add("name"typeof(string));

                for (int i = 1i < 11i++)
                {
                    dt.Rows.Add(ii.ToString());
                }
            }

            private void Form1_Load(object senderEventArgs e)
            {
                dataGridView1.DataSource = dt;
            }

            private void dataGridView1_CellValueChanged(object senderDataGridViewCellEventArgs e)
            {
                string s = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString().Trim();

                if (s == "")
                {
                    dt.Rows[e.RowIndex].Delete();
                    dt.AcceptChanges();
                    dataGridView1.DataSource = dt;
                }
            }
        }
    }


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2012年1月9日 9:19
    版主
  • 欢迎光临MSDN中文论坛,李东洋!

    请参照Wei_Dong的示例代码再次检查测试一下你的项目,若问题仍然存在,请详细描述。

    谢谢!


    Martin Xie [MSFT]
    MSDN Community Support | Feedback to us
    2012年1月18日 9:28
    版主