当前位置 : 主页 > 编程语言 > c语言 >

vb.net – 用于许多控件的Keydown Handler

来源:互联网 收集:自由互联 发布时间:2021-06-24
有没有更好的方法来为繁忙的表单上的许多控件提供keydown处理程序? (在某些情况下,单独使用表单处理程序不起作用.) Private Sub rText_KeyDown(ByVal Sender As Object, ByVal e As KeyEventArgs) Handles
有没有更好的方法来为繁忙的表单上的许多控件提供keydown处理程序? (在某些情况下,单独使用表单处理程序不起作用.)

Private Sub rText_KeyDown(ByVal Sender As Object, ByVal e As KeyEventArgs) Handles rText0.KeyDown, txTaxon.KeyDown, txCommon.KeyDown, _
  txConfidence.KeyDown, txDate.KeyDown, txDateAdded.KeyDown, txFileName.KeyDown, txGPS.KeyDown, txRating.KeyDown, _
  txConfidence.KeyDown, txQuality.KeyDown, txRemarks.KeyDown, txKeyWords.KeyDown, txOriginalPath.KeyDown, txDateAdded.KeyDown, _
  txLink.KeyDown, chkLink.KeyDown, rview.KeyDown, cmdNext.KeyDown, tvTaxon.KeyDown, Me.KeyDown, _
  cmdTaxon.KeyDown
Call globalkey(e)
End Sub
我是一名C#程序员,因此无法提供有效的解决方案(如在vb.net代码中).

我认为你可以通过做以下事情来实现这一目标.

>为您的相应控件编写一个AddHandlers的方法,当且仅当它们具有设置为属性的特定值时(下面的步骤#2中的详细信息)
>要将公共处理程序附加到的所有控件将其Tag属性设置为唯一值,例如:“KeyDown”.我建议在这种情况下使用Enum,而不是字符串
>现在,在Form构造函数中,在InitializeComponent调用之后,调用您在上面#1中编写的方法.这将把处理程序附加到所有所需的控件.
>如果您有多个具有此要求的表单,则可以将此功能添加到主表单,该表单的作用类似于所有其他表单的父表单(继承)

希望我足够清楚,这有帮助.

网友评论