日期:2014-05-18  浏览次数:20718 次

关于datagridview TextChanged的问题
C# code

private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            
                if (e.Control is DataGridViewTextBoxEditingControl)
                {
                    DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;
                    tb.TextChanged += new EventHandler(cellValueChanged);
                }
                
            
        }

       
        private void cellValueChanged(object sender, EventArgs e)
        {
            DataGridViewTextBoxEditingControl textBox = (DataGridViewTextBoxEditingControl)sender;
            if (!textBox.Text.Trim().Equals(""))
            {
                MessageBox.Show(textBox.Text);
            }
        }




代码如上 我在一个单元格中 输入内容的时候 这个textChanged事件会执行多次 比如 第一个单元格会执行两次 第二个就会执行三次 一次类推


不知道是什么原因 给点指点。。。 谢谢

------解决方案--------------------
控制行、列:
C# code


private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
           if(dataGridView1.CurrentCell.ColumnIndex==1 && dataGridView1.CurrentCell.RowIndex!=-1)  //控制行、列
           {
            
                if (e.Control is DataGridViewTextBoxEditingControl)
                {
                    DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;
                    tb.TextChanged += new EventHandler(cellValueChanged);
                }
            }
            
        }