请问怎么捕捉dataGridView中单元格的写入事件啊,就是有1单元格一录数据后就改变另一个单元格的值,来点提示也好啊。我数据表绑定后,有2列,想在其中1列输入数据后,另一列运算后改变。现在不知道怎么捕捉这个事件,如果是ASP的那还好办,这种C/S的是怎么捕捉的啊,具体实现可否来点提示啊。

解决方案 »

  1.   

    dataGridView1.Rows[e.RowIndex].Cells["本月产量"].Value =100;这个怎么无法赋值呢?
      

  2.   


     private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {        }
    //这个是当你在当元格输入值后,刚离这个单元格时发生的事件.估计lz要像TextBoxChanged那样的事件,呵呵
      

  3.   

    应该可以的,跟踪一下String[] str = ReplaceHeaderText(GV_PriceInfo.Columns[i].HeaderText);
                                PriceRangeSDO data = new PriceRangeSDO();
                                data = PriceRangeCollection.Find(delegate(PriceRangeSDO obj)
                                {
                                    return obj.UpperLimit == JYWL.Proxy.Cache.Cache.StrToFloat(str[0
                                        ]) && obj.LowerLimit == JYWL.Proxy.Cache.Cache.StrToFloat(str[1]);
                                });
                                if (data != null)
                                {
                                    PriceInfoSDO unitprice = PriceInfoCollection.Find(delegate(PriceInfoSDO obj) { return obj.Area_ID == area && obj.Area_ID2 == area2 && obj.PriceRange_ID == data.ID; });
                                    if (unitprice != null)
                                    {
                                        DataGridViewRow row = GV_PriceInfo.Rows[0].Clone() as DataGridViewRow;
                                        GV_PriceInfo.Rows[j].Cells[i].Value = unitprice.UnitPrice;//赋值
                                    }
                                }我也是这样赋值的,不过我是循环添加的,应该一样的
      

  4.   

    LZ可以试下事件的动态绑定。
    CELLCREATE的时候给每个TEXTBOX绑个CHANGE事件。
      

  5.   

    当然前提是LZ用的是模板列里加TEXTBOX。
      

  6.   

    datagridview有个cellvaluechanged事件!你可以利用他来弄
      

  7.   

    ref:当然前提是LZ用的是模板列里加TEXTBOX
    这是winform程序,哪里来模板列加textbox?本来就默认添加的是textbox列你在cellvaluechanged时间来弄应该是可以的
    不知道楼主是怎么弄的?
      

  8.   


     private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                TextBox cb = e.Control as TextBox;
                if (cb != null)
                {
                    cb.TextChanged += new EventHandler(cb_TextChanged);
                }        }        void cb_TextChanged(object sender, EventArgs e)
            {
                //执行内容
            }
    这样可行。哈哈
      

  9.   

    private void dataGridView_CellValueChanged
    修改数据源
    重新绑定
      

  10.   


    private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
     {
          TextBox cb = e.Control as TextBox;
          if (cb != null)
           {
              cb.TextChanged += new EventHandler(cb_TextChanged);
           } }  void cb_TextChanged(object sender, EventArgs e)
      {
          //LZ要执行的方法
       }这个方法我测试过的,和textbox的TextBoxChanged事件一样,即时判断的
      

  11.   

    在dataGridView1_CellValueChanged里想怎么改就怎么改。
      

  12.   

    原理应该类似与textbox的change事件吧