专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

VB.NET有关问题:有6个Button,焦点在Button1上,怎么通过按回车键响应Button5的事件

发布时间:2011-06-23 15:58:09 文章来源:www.iduyao.cn 采编人员:星星草
VB.NET问题:急!!有6个Button,焦点在Button1上,如何通过按回车键响应Button5的事件?
我遇到的情况是如果焦点在Button1上,我按回车只响应Button1的事件,无法响应Button5的Click事件,不知如何能使响应Button5的事件实现?请高手指教?望能提供详细代码,多谢!

------解决方案--------------------
我试了,成功了!!!
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Focus()
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
MsgBox( "Hello! ")
End Sub

Private Sub Button1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyUp
If e.KeyCode = Keys.Enter Then
Button5.Focus()
Me.Button5_Click(sender, e)
End If

End Sub
------解决方案--------------------
这个又改进了一点,只是回车要第二次开始才有用,其它就完全正常了。如果把KeyUp事件换成KeyDown事件,好像也不行。和MsgBox没关系,呵呵,晕了。

Public Class Form1
Dim key As Boolean
Dim mouse As Boolean

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If key Then
Button5_Click(sender, e)
ElseIf mouse Then
'TextBox1.Text &= "Hello1 " '& vbCrLf
MsgBox( "Hello 1 ")
End If
key = False
mouse = False
End Sub

Private Sub Button1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyUp
key = True
mouse = False
End Sub

Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
mouse = True
key = False
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'TextBox1.Text &= "Hello5 " '& vbCrLf
MsgBox( "Hello 5 ")
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
key = False
mouse = False
End Sub

Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox( "Hello 2 ")
End Sub
End Class
------解决方案--------------------
楼主如果要像微软计算器那样的话,可以这样,如果你有textbox的话再建一个textbox把它藏在你要的那个textbox里面,运行时不可见,但他的visable属性要为true,点击button时把焦点全给这个textbox再自生成的窗体代码中加上这段代码就可以了;
Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim key as string
key=e.keychar()
If key=Microsoft.VisioBasic.Chrw(13) Then
Button5.Focus()
Button5.PerformClick()
End If
以上代码就行了,但别忘了在Public Sub New()中加上
MyBase.KeyPreview = True
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: