重入对SetCurrentCellAddressRow函数的调用

时间:2019-01-19 07:11:53

标签: c#

在DataGridView中,我将一个Cell设置为CellEnterEvent上的ComboBox,并在CellLeaveEvent上将其设置回具有选定值的文本框。 但这会弹出对setCurrentCellAddressCore函数的错误重入调用,该函数的RowIndex为1,ColIndex为1,其余各行均能完美工作。

即使在BeginEdit事件上也可以正常工作,但我希望它在CellEnterEvent上工作

private void grdInvDtl_CellEnter_1(object sender, DataGridViewCellEventArgs e)
        {
          if (e.RowIndex < 0)
          return;
          if (e.ColumnIndex == grdInvDtl.Columns["ProductName"].Index)
  

对于产品

       {                  
          DataGridViewComboBoxCell cb = new DataGridViewComboBoxCell();
          cb.DataSource = objPurchaseMast.ProductName();
          cb.ValueMember = "PkProductId";      // ProductId 
          cb.DisplayMember = "ProductName";    // ProductName

          if (grdInvDtl.Rows[e.RowIndex].Cells[e.ColumnIndex].GetType() != 
          typeof(DataGridViewComboBoxCell))            
          {
           grdInvDtl.CurrentRow.Cells[e.ColumnIndex] = cb;
        // grdInvDtl.Rows[e.RowIndex].Cells[e.ColumnIndex] = cb;
           grdInvDtl.BeginEdit(true);
           ((ComboBox)grdInvDtl.EditingControl).DroppedDown = true;
           }
       }  

您的帮助将不胜感激,谢谢。

0 个答案:

没有答案