为什么datagridview的行离开或单元格离开事件不允许addnewrow()

时间:2016-08-08 05:56:40

标签: c# winforms datagridview

我有一个Windows窗体,其中有一个txtbox,一个datagridview和一个用于保存的按钮。

现在,当在文本框中输入值时,相关值将在datagridview中填充(我为我的应用程序手动调用datagridview.addnewrow()dgv.allowadd = false

现在我想要而不是专注于保存按钮我想再次关注文本框!为了输入其他值,在datagridview上将再添加一行dgv.addnewrow()

当我使用dgv.rowLeave事件手动将焦点设置在文本框上时,dgv.cellLeave事件> dgv.addnewrow()第二次addnewrow()无效。它覆盖了第一个添加的行

如果我在addnewrow()事件中编写代码

,我在文本框中输入值时,

dgv.leave一直正常工作

所以如果有人可以帮我实现这个功能!

    private void TxtPACKET_NO_KeyDown(object sender, KeyEventArgs e)
    {
       // on key enter fetch the packet information 
       if (e.KeyCode == Keys.Enter)
       {
         if (txtBARCODE.Text.Length > 0)
           {
             FetchData(txtBARCODE.Text);
           }
       }
    }
   private void FetchData(string PacketNo)
   {
      DataRowView drv = dgvGRADE_DET_PS.AddNewRow();
      drv.BeginEdit();
      // Assigning Necessary Values to the columns
     drv.EndEdit();
     this.dgvGRADE_DET_PS.CurrentCell = this.dgvGRADE_DET_PS.Rows[this.dgvGRADE_DET_PS.Rows.Count - 1].Cells[3];
   }

    void dgvGRADE_DET_PS_CellLeave(object sender, DataGridCellEventArgs e)
    {
        if (this.dgvGRADE_DET_PS.Columns[e.ColumnIndex].Name == "MY COLUMN NAME")
        {
            this.txtBARCODE.Text = string.Empty;
            this.txtBARCODE.Select();
        }
    }

0 个答案:

没有答案