我在C#3.5的WinForm应用程序中有一个DataGridView.
AllowUserToAddNewRow属性设置为true.当用户在DataGridView中键入任何文本时,另一个新行会自动添加到DataGridView中.我不希望在当前行上执行某些检查并添加所有必要信息之前添加此新行.
示例:我有一个带空行的DataGridView:
当我开始输入时,添加了一个新行,这太快了:
我想要的是只有在用户输入数量后才添加新行:
解决方法:
设置AllowUserToAddNewRow = false
现在,最初在数据源中添加一个空行,例如.如果你将DataGridView绑定到一个名为DT的DataTable,那么就在之前
dataGridView1.DataSource = DT;
做点什么
DT.Rows.Add(DT.NewRow());
这是最初有一个空行,以便可以输入第一个记录.
然后处理事件dataGridView1.CellEndEdit,在那个事件中写这样的东西:
void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1)//The index of your Quantity Column
{
int qty = (int)DT.Rows[e.RowIndex][e.ColumnIndex];
if (qty > 0)//Your logic if required
{
DT.Rows.Add(DT.NewRow());
}
}
}