如何以编程方式调用事件处理程序

时间:2015-02-02 17:46:30

标签: winforms

我在CellEndEdit应用程序中有datagridview的事件处理程序winforms,当我在datagridview中写完内容时会运行。现在我想在点击按钮时调用此事件。我怎样才能实现这一目标?感谢。

1 个答案:

答案 0 :(得分:0)

让我们看一下常规事件处理程序。 (顺便说一句,你没有指定C#或VB所以我会使用VB)

这个子程序的名称是“Button1_Click”,它有2个参数,类型为Object和System.EventArgs。

通常情况下,系统只调用事件处理程序,但没有理由不能自己调用​​事件处理程序。

挑战将是如果事件处理程序中的代码依赖于发送方和事件参数,您将很难复制它,但如果您的代码不依赖于此,则只传入Nothing或null每个论点。

但是,如果存在常见行为,我将定义一个单独的函数,并从事件处理程序和按钮单击调用该函数。

示例:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    rgv_CellEndEdit(Nothing, Nothing)
End Sub

Private Sub rgv_CellEndEdit(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.GridViewCellEventArgs) Handles rgv.CellEndEdit
    FillGridLine()
    If rgv.CurrentCell.ColumnInfo.Name = "ProductId" And rgv.CurrentCell.Value Is Nothing And IsDBNull(rgv.CurrentCell.Value) = True Then
        rgv.CurrentRow = rgv.Rows(rgv.CurrentRow.Index)
        rgv.CurrentColumn = rgv.Columns("ProductId")

    End If
End Sub