我们的想法是能够在设计时设置f1-f4键。就像accept和canel按钮是正常形式一样。
me.AcceptButton = Button1
我希望能够拥有与此属性相同的功能。如在接受按钮中,按Enter键并执行。我希望能够将F1-F4键分配给按钮。
me.F1Button = ButtonCalc
me.F2Button = ButtonClr
etc.
我已经看了很多创建自定义控件并构建了一些,但似乎没有找到关于如何类似的东西的文档。我正在寻找关于此的任何书籍,文章或指南。
答案 0 :(得分:2)
您必须继承表单作为基类才能让设计器序列化属性,但这只是一个简单的例子:
Public Property F1Button As Button
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, _
keyData As Keys) As Boolean
If keyData = Keys.F1 AndAlso F1Button IsNot Nothing Then
F1Button.PerformClick()
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
答案 1 :(得分:0)
为表单和所有按钮设置KeyDown
事件处理程序。您需要这样做,因为在按下键时表单可能没有焦点。
Private Sub Form1_Load(sender As Object, e As EventArgs)
AddHandler CancelButton.KeyDown, AddressOf Form1_KeyDown
AddHandler OKButton.KeyDown, AddressOf Form1_KeyDown
AddHandler Me.KeyDown, AddressOf Form1_KeyDown
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs)
Select Case e.KeyCode
Case Keys.F1
' custom action
Case Keys.F2
' custom action
Case Keys.F3
' custom action
Case Keys.F4
' custom action
End Select
End Sub