gpt4 book ai didi

.net - 无法在此事件处理程序中执行操作

转载 作者:行者123 更新时间:2023-12-01 09:37:40 24 4
gpt4 key购买 nike

我正在尝试从 DataGridView 中删除一行
我使用两种类型的指令
一种

VouchersDGV.Rows.Clear()


If Not DGV.Rows(RowIndex).IsNewRow Then
DGV.Rows.RemoveAt(RowIndex)
DGV.Refresh()
End If

他们俩都是从里面
VouchersDGV_RowValidating

事件
我还使用 RaiseEvent 从另一个事件处理程序运行它。
最后一个事件处理程序我用它从行内部逃逸,以防输入错误或......无论如何并将数据网格带到它的初始位置
事件是
Private Sub Supplier_prod_EscapeOnFirstRowPressed() Handles Me.EscapeOnFirstRowPressed

要删除我从上面的 EventHandler 输入的行
VouchersDGV_RowValidating

EventHandler 和我收回同样的错误
DGV.Rows.RemoveAt(0) {"Operation cannot be performed in this event handler."} 

我个人不明白为什么会发生这种情况以及我如何给出解决方案
有没有人知道这个错误?

最佳答案

RowValidating在用户更改行的内容然后尝试移动到另一行后触发事件。 'RowValidating' 的目的是让您(程序员)检查刚刚所做的更改并取消这些更改和/或防止用户移动到不同的行。因此,您被禁止删除此事件处理程序中的当前行(或任何其他行)是有道理的。

我不是很清楚你要在这里完成什么。 RowValidated事件(不是 RowValidating )可能适合您的目的。

更新:我想 RowLeave实际上是您要使用的事件,如果不是,您可以尝试使用此列表中的其他事件:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview_events.aspx

关于.net - 无法在此事件处理程序中执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960232/

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