1
我有一個DataGridView有7個單元格,在我進入的每個單元格中,如果我按下轉義鍵當前行將被刪除,您所做的事件名爲Public Event EscapeOnFirstRowPressed
,並且沒有問題,並將控制權交給每個初始狀態。從DataGridView中刪除行
這個過程的總體思路是,當所有的細胞都滿足,則
- 將數據寫入SQL表和
- 刪除當前行,所以用戶現在可以導入新數據。
由於寫入過程是好的,我把我的興趣轉移到該行。
我說這個動作需要從RowValidated
sub或從CellEnter
(當我離開當前行併到達下一行時發生)調用它。但在任何地方,如果我把我收到以下錯誤
DGV.Rows.RemoveAt(0) {"Operation cannot be performed in this event handler."}
我嘗試另一種過程,這個動作命令
If Not DGV.CurrentCell.EditedFormattedValue = "" Then
If Not DGV.Rows(RowIndex).IsNewRow Then
DGV.Rows.RemoveAt(RowIndex)
DGV.Refresh()
End If
ElseIf DGV.CurrentCell.EditedFormattedValue = Nothing Then
If Not DGV.Rows(RowIndex).IsNewRow Then
DGV.Rows.RemoveAt(RowIndex)
DGV.Refresh()
End If
End If
。我儘量模擬給予以下命令
Dim myKeyData As System.Windows.Forms.Keys
Dim myMsg As System.Windows.Forms.Message
myKeyData = Keys.Escape
ProcessCmdKey(myMsg, myKeyData)
的按鍵響應行動,但我收到同樣的錯誤,當指針是當我按下Esc鍵來執行其執行相同的指令。
感謝您的關注,請更具體。當我會這樣做?在CellValidated的結尾?或之後RowValidated?請你幫助我如何使用BeginInvocke,因爲我試圖做到這一點,但我無法做出任何積極的結果。 – 2011-02-17 16:25:50