关闭VB表单时出错 - 无法转换" EventArgs"到" KeyEventArgs"

时间:2014-08-19 15:30:52

标签: vb.net forms

我一直致力于一个VB程序,它将帮助我们的内部操作,在这个程序中,我创建了一个表单(子表单),它接收一些信息并将其保存到数据库中。

我最近将.KeyDown添加到我的主框中,以便用户可以按Enter键而不必按下按钮。 (参见下面的标题)。 (这是您输入的第一个字段)

Private Sub Model_Family_Validate(sender As Object, e As KeyEventArgs) Handles txtbox_modelfamily.Validated, txtbox_modelfamily.KeyDown

在我的父表单上,我有一个注销按钮,即EventArgs,如果我输入我的子表单,然后注销它崩溃说

An unhandled exception of type 'System.InvalidCastException' occurred in System.Windows.Forms.dll Additional information: Unable to cast object of type 'System.EventArgs' to type 'System.Windows.Forms.KeyEventArgs'.

如果我删除了我的KeyDown事件,Keyeventargs删除了Eventargs,它就可以了。

  • 即使我只是输入此表单然后注销错误,我也不需要在子表单中执行任何操作。
  • 我使用KeyEventArgs的原因是因为我需要知道按下了回车键
  • “父表单”顶部有一个功能区,其中包含各种按钮以及一个包含更多选项的下拉菜单。我正在使用其中一个下拉选项。

另一个奇怪的事情是我可以按下退出之外的任何其他按钮。

Public Sub LogOff_Click(sender As Object, e As EventArgs) Handles btn_m_logoff.Click

    Me.Close()
    frm_login.Show()

    frm_login.txtbox_loginpassword.Text = ""

End Sub

任何人都可以理解为什么会这样做吗?

如需了解更多信息,请告知我们,谢谢。

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,则在单击“输入”按钮时尝试注销。您还有一个按钮,显示“注销”,该按钮应该执行与按Enter键相同的功能。如果是这样,您应该使用表单的Me.AcceptButton属性并将其设置为现有的注销按钮。您可以在设计模式下或在运行时执行此操作。

每当按下Enter键时,此属性应运行Private Sub Model_Family_Validate子例程中的代码。

答案 1 :(得分:0)

感谢大家的回答,这个问题现已解决。我已经选择了严格的选项,它突出了问题,现在已经纠正了。

我将这两个事件分成了他们自己的部分,现在就像我想要的那样。