c# – 在填充当前行之前阻止新行出现在DataGridView中?

我在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());                    
            }
        }
    }
上一篇:痞子衡嵌入式:盘点国内车规级MCU厂商


下一篇:CAN控制器总线错误分析之CAN节点BusOff恢复过程分析与测试