Я не совсем уверен, почему Спевак удалил свой ответ; это было правильно. Обработчик нажатия кнопки происходит от события Control.Click , которое принимает объект типа EventArgs в качестве второго параметра. Когда вы нажимаете кнопку, создается объект типа MouseEventArgs, который наследуется от EventArgs как дочерний элемент в иерархии наследования, поэтому его можно передать обработчику щелчков (поскольку дочерний тип всегда может автоматически приводиться к любому из его родительские типы)
KeyPressEventArgs также происходит от EventArgs, но является родственным элементом MouseEventArgs, а не унаследованным отношением. Таким образом, когда вы нажимаете кнопку и создается MouseEventArgs, ее нельзя передать в Sub / Function, которая объявлена для получения KeyPressEventArgs, потому что между ними нет автоматического преобразования c. Мышь и KeyPress имеют одного и того же родителя, но разные вещи и не могут быть преобразованы.
Короче говоря, измените свой обработчик нажатий кнопок, чтобы он использовал EventArgs вместо KeyPressEventArgs
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
В сторону, пожалуйста, всегда переименовывайте свои элементы управления после добавления их в форма. Есть несколько вещей, которые хуже для кого-то, кто читает ваш код и пытается помочь, чем работать и помнить, какая из 30 кнопок X или текстового поля Y делает что / есть что - переименование их в «_inputTextBox» или «_saveButton» занимает около 2 секунд и неизмеримо помогает вам, так как ваша программа усложняется