gpt4 book ai didi

c# - 在 DataGridView 中将 IsNewRow 状态更改为 false 或模拟单元格上的击键

转载 作者:行者123 更新时间:2023-11-30 18:06:54 29 4
gpt4 key购买 nike

我在 winforms 应用程序中使用 DGV。我想将行状态从新建 (IsNewRow) 更改为已编辑。每当我们开始在 DGV 的最后一行输入值时,它都会通过将当前行的 IsNewRow 属性设置为 false 在编辑行下方创建另一行。

在我的要求中,当用户位于最后一行并且按下 F6 时,我将几个单元格值从上一行复制到当前行。此时当前行仍处于新行状态(IsNewRow=true)。一旦我将值从上一行复制到当前行,我想将当前行的状态更改为已编辑,以便 DGV 在当前行下方创建另一行作为新行。不确定哪个事件使 DGV 创建新行,所以请帮助我。

无论如何我可以更改当前行的状态吗? IsNewRow 属性是只读的,因此无法修改它。

更新:我找到了一种设置当前行状态的方法 (IsNewRow=false)。使用以下方法:MyGridView.NotifyCurrentCellDirty(true);

至少我想模拟击键,这样我就可以通过编辑这一行来欺骗 DGV 创建另一行。谁能告诉我如何在 DGV 中执行此操作?

此 DGV 未进行数据绑定(bind)。

以下是用于将值从上一行复制到当前行的代码:

  switch (e.KeyData)
{
case Keys.F6: //Copy the row above.
if (MyGridView.CurrentRow != null && MyGridView.CurrentRow.Index > 0)
{
MyGridView.CurrentRow.Cells[CustomColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[Customer.Index].Value;

MyGridView.CurrentRow.Cells[DateColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[DateColumn.Index].Value;

MyGridView.CurrentRow.Cells[RefColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[RefColumn.Index].Value;
}
}

最佳答案

我不知道如何操纵行状态来执行此操作,但您可以添加一个新行,然后设置当前行值。我发现当你添加一个新行时,它会出现在当前新行的上方,所以如果你不重置当前行,你会在网格中得到一个空白行。

尝试以下操作,看看它是否符合您的要求。我还更改了行索引测试,因此它仅在用户位于新行时才复制值。

  switch (e.KeyData)
{
case Keys.F6: //Copy the row above.
if (MyGridView.NewRowIndex > 0 && MyGridView.NewRowIndex == rowIndex)
{
int colIndex = MyGridView.CurrentCell.ColumnIndex;

MyGridView.Rows.Add();
MyGridView.CurrentCell = MyGridView.Rows[rowIndex].Cells[colIndex];

MyGridView.CurrentRow.Cells[CustomColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[Customer.Index].Value;

MyGridView.CurrentRow.Cells[DateColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[DateColumn.Index].Value;

MyGridView.CurrentRow.Cells[RefColumn.Index].Value
= MyGridView.Rows[rowIndex - 1].Cells[RefColumn.Index].Value;
}
}

关于c# - 在 DataGridView 中将 IsNewRow 状态更改为 false 或模拟单元格上的击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375190/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com