Event LostFocus使数据网格单元格返回以前输入的值



我有以下代码:

if (GridSellProducts.CurrentCell.ColumnIndex == 1 && e.Control is TextBox)
{
     TextBox textBox = e.Control as TextBox;
     textBox.KeyPress -= new KeyPressEventHandler(QuantityFieldValidate);
     textBox.KeyPress += new KeyPressEventHandler(QuantityFieldValidate);
     textBox.LostFocus -= new EventHandler(QuantityCellLeave);
     textBox.LostFocus += new EventHandler(QuantityCellLeave);
}

private void QuantityCellLeave(object sender, EventArgs e)
{
     // calculate total value
     quantity = Convert.ToDecimal(GridSellProducts.Rows[GridSellProducts.CurrentCell.RowIndex].Cells["Qnty"].Value);
}

问题是,当我第一次运行代码并在Qnty字段中输入一个数量时,无论我输入什么数字,十进制quantity都会返回0,例如18。当我点击返回单元格输入另一个数字,比如23时,decimal现在返回数字18。为什么会这样?

您只需要使用不同的事件;CCD_ 2。

void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex != qntyColumnIndex) { return; }
    quantity = Convert.ToDecimal(
        GridSellProducts.Rows[e.RowIndex]
                        .Cells["Qnty"].Value);
}

其中CCD_ 3是该列的索引。

相关内容

  • 没有找到相关文章

最新更新