大家好 向大家请教一个困扰我好久的问题
  希望大家能帮忙看下  谢谢了
    我现在在做一个项目
  其中的基础模块有一个是  对单表的数据操作
     在这里使用的是 datagridview控件
   然后我使用了一个  datagridview的cellclick事件
   以实现一个   把选中单元格所在行各单元格的值取出来分别放在文本框内  的功能
   这个是个很基本的东西  感觉大家应该都使用过
   下面是我写的代码
  private void tpconsume_dgv_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int row = tpconsume_dgv.SelectedCells[0].RowIndex;
            cb_consumegroup.Text = tpconsume_dgv.Rows[row].Cells[1].Value.ToString();
            cb_consumesources.Text = tpconsume_dgv.Rows[row].Cells[4].Value.ToString();
            dTP_consumetime.Text = tpconsume_dgv.Rows[row].Cells[3].Value.ToString();
            tb_consumeamount.Text = tpconsume_dgv.Rows[row].Cells[2].Value.ToString();
            tb_consumeaddition.Text = tpconsume_dgv.Rows[row].Cells[5].Value.ToString();         }
这个功能是实现了的  没什么问题    
问题是   
当使用了这个功能之后  不管在什么情况下 只要我单击某一个单元格
就会自动把值传到文本框中  而在某一些情况下  我不希望在文本框中显示这些信息
 也就是说  我像用编程的方式   实现对这个cellclick事件     的  禁用和激活   
  我想不到用什么办法可以实现 
   拜托各位帮我看下可以有什么方法实现吗 谢谢了    
 

解决方案 »

  1.   

    private void tpconsume_dgv_CellClick(object sender, DataGridViewCellEventArgs e)
            {
              if(enableCheckbox.isChecked) return;// 放个enableCheckbox在旁边 选中就禁用            int row = tpconsume_dgv.SelectedCells[0].RowIndex;
                cb_consumegroup.Text = tpconsume_dgv.Rows[row].Cells[1].Value.ToString();
                cb_consumesources.Text = tpconsume_dgv.Rows[row].Cells[4].Value.ToString();
                dTP_consumetime.Text = tpconsume_dgv.Rows[row].Cells[3].Value.ToString();
                tb_consumeamount.Text = tpconsume_dgv.Rows[row].Cells[2].Value.ToString();
                tb_consumeaddition.Text = tpconsume_dgv.Rows[row].Cells[5].Value.ToString();        } 
      

  2.   

    如果没有办法能够以编程的方式激活和禁用   cellclick事件的话只要能实现这样一个功能也行 :当使用了cellclick之后  不管在什么情况下 只要我单击datagridview中的某一个单元格 
    就会自动把值传到文本框中  
    而在某一些情况下  我不希望在文本框中显示这些信息 
    就是说  在我进行了某一个操作之后  我在单击datagridview中的单元格是不会再把值传到文本框中去了
       
      

  3.   

    我的问题就是 
      当我使用了datagridview控件的cellclick事件
    实现了把选中单元格所在行各单元格的值取出来分别放在文本框内  的功能
    这个功能有一个问题就是
    不管在什么情况下只要我单击  datagridview中某一个单元格时就会把选中单元格所在行各单元格的值取出来分别放在文本框内   
    但是在某一些情况下我又不需要这个功能
    所以我想能不能手动的禁用  和 激活  这个功能
       而我现在能想到的一个比较可行的想法是  能不能通过编程的方法 禁用和 激活这个cellclick事件
       但是具体怎么实现我不知道
        
      

  4.   

    里面加个判断不就行了吗?
    private void tpconsume_dgv_CellClick(object sender, DataGridViewCellEventArgs e) 

    int row = tpconsume_dgv.SelectedCells[0].RowIndex; 
    if(状态值0/1){
    cb_consumegroup.Text = tpconsume_dgv.Rows[row].Cells[1].Value.ToString();

    cb_consumesources.Text = tpconsume_dgv.Rows[row].Cells[4].Value.ToString(); 
    dTP_consumetime.Text = tpconsume_dgv.Rows[row].Cells[3].Value.ToString(); 
    tb_consumeamount.Text = tpconsume_dgv.Rows[row].Cells[2].Value.ToString(); 
    tb_consumeaddition.Text = tpconsume_dgv.Rows[row].Cells[5].Value.ToString();