Невозможно привести объект типа «System.EventArgs» к типу «System. Windows .Forms.FormClosingEventArgs». - PullRequest
0 голосов
/ 02 февраля 2020

Я столкнулся с этой проблемой (хотя тема была поднята здесь, но не ответил). Я намереваюсь вызвать событие formclosing из события exitmenustrip_click, и я получаю эту ошибку "Невозможно привести объект типа 'System.EventArgs' к типу 'System. Windows .Forms.FormClosingEventArgs'." Пожалуйста, мне нужна помощь. ниже мой код

     Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click

    cashsalesForm_FormClosing(ExitToolStripMenuItem, e) '<-ERROR shows here

End Sub

    Private Sub cashsalesForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    //some codes here
End Sub

1 Ответ

0 голосов
/ 02 февраля 2020

Что касается указанной проблемы c, то у второго метода есть параметр типа FormClosingEventArgs, поэтому, если вы вызываете его, вам нужно передать объект этого типа. Вы передаете объект типа EventArgs. Тот факт, что имена разные, говорит о том, что они не совпадают. Первый наследует последний, поэтому он имеет все те же функциональные возможности плюс некоторые дополнительные. Эта дополнительная функциональность не может быть вызвана просто из воздуха, когда вы вызываете ожидающий ее метод.

Что касается основной проблемы, вы не вызываете обработчики событий напрямую. Если у вас есть пункт меню, который должен закрыть форму, то вы вызываете метод Close формы в обработчике событий Click. Затем форма вызовет событие FormClosing, и будет выполнен второй обработчик события. Вот как это работает: обработчики событий предназначены для обработки событий.

...