我在 C# 3.5 的 WinForm 应用程序中有一个 DataGridView。
AllowUserToAddNewRow
属性设置为 true。当用户在 DataGridView 中键入任何文本时,另一个新行会自动添加到 DataGridView。在对当前行执行一些检查并在其中填写所有必要信息之前,我不希望添加这个新行。
示例:我有一个带有空白行的 DataGridView:
当我开始输入时,添加了一个新行,这太快了:
我想要的是仅在用户输入数量后才添加新行:
最佳答案
设置 AllowUserToAddNewRow = false 现在最初向您的数据源添加一个空白行,例如。如果您将 DataGridView 绑定(bind)到名为 DT 的数据表,那么就在
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());
}
}
}
关于c# - 在填充当前行之前防止新行出现在 DataGridView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988330/