0

我在[dgv_clients_UserDeletingRow]使用[ContextMenuStrip].

它给了我这个错误:

Unable to cast object of type 'System.EventArgs' to type 'System.Windows.Forms.DataGridViewRowCanelEventArgs'

这是我的代码:

  Private Sub dgv_clients_UserDeletingRow(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowCancelEventArgs) Handles dgv_clients.UserDeletingRow
    deleteLine(e)
End Sub

  Private Sub toolStripItem1_Click(ByVal sender As Object, ByVal args As EventArgs) Handles toolStripItem1.Click

    If mouseLocation.RowIndex > 0 Then
        dgv_clients.Rows(mouseLocation.RowIndex).Selected = True
        dgv_clients.Rows(mouseLocation.RowIndex).DefaultCellStyle.SelectionBackColor = Color.Gray
        DeleteToolStripMenuItem_Click(sender, args)
    End If

End Sub
Public Sub DeleteToolStripMenuItem_Click(ByVal Sender As Object, ByVal e As EventArgs)
    Call deleteLine(e)
End Sub

谢谢大家

4

1 回答 1

1

问题是你的deleteLine方法。

你用两种不同的类型来调用它。在Sub dgv_clients_UserDeletingRow你通过e as DataGridViewRowCancelEventArgs 和在Sub DeleteToolStripMenuItem_Click你通过e as EventArgs。如果你没有deleteLine为这两种类型重载你的方法,编译器会尝试自动解析错误的类型并且它会失败。

于 2013-04-23T13:49:36.570 回答