2015-02-02 3 views
0

У меня есть обработчик событий CellEndEdit из datagridview в приложении winforms, который работает, когда я заканчиваю писать что-то в datagridview. Теперь я хочу вызвать это событие также при нажатии кнопки. Как я могу достичь этого? Благодарю.Как вызвать обработчик событий программно

+1

Просто добавьте обработчик для кнопки мыши и вызвать 'CellEndEdit' так же, как и любой другой метод. – DonBoitnott

ответ

0

Давайте посмотрим на обычный обработчик событий. (BTW, вы не указали 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 
+0

Благодарим за использование информации, но особенно заинтересуем мой вопрос. Мне нужен пример кода. например, у меня есть метод или подпрограмма и предположим 20 строк кода, между этими строками мне нужно вызвать или запустить событие CellEndEdit. Как я позвоню? извините за мое понимание недостатка в вашем предыдущем ответе, который, я думаю, не соответствует моей потребности, спасибо. – user3004110

+0

Ну что ж, отправь код. Я дал много информации. – Jeremy

+0

Private Sub rgv_CellEndEdit (отправитель Как System.Object, е Как Telerik.WinControls.UI.GridViewCellEventArgs) Ручки rgv.CellEndEdit FillGridLine() Если rgv.CurrentCell.ColumnInfo.Name = "ProductID" И rgv.CurrentCell.Value Is Nothing и IsDBNull (rgv.CurrentCell.Value) = True Затем rgv.CurrentRow = rgv.Rows (rgv.CurrentRow.Index) rgv.CurrentColumn = rgv.Columns ("ProductId") – user3004110

Смежные вопросы