btnLogin_Click无法处理Click事件:签名不兼容问题求助
解决方法
1. 修复事件签名不兼容问题
你收到的错误核心原因是按钮Click事件的处理方法签名不符合标准。.NET WinForms中按钮的Click事件处理方法只能接受两个参数:sender As Object 和 e As EventArgs,你额外添加的messageBox As MessageBox参数,导致方法签名和事件要求不匹配,因此触发报错。
直接去掉这个多余的参数即可,MessageBox是系统内置类,无需作为参数传递,直接在方法内调用就行。
2. 修正代码中的语法错误
你的代码还有两处语法逻辑问题:
- 用
And连接txtPass.Text = ""和MessageBox.Show属于错误语法,VB里不能这样写,需拆分为两行语句 ElseIf Not (strUser = "drake" And strpass = "1")完全没必要,直接用Else即可——前面已经判断了正确登录的情况,剩下的自然都是错误情况
另外,清空密码框用txtPass.Clear()或者txtPass.Text = ""都有效,之前没生效是因为签名错误导致代码根本没正常执行到这一步。
修正后的完整代码
Public Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click Dim strUser As String = txtUser.Text Dim strpass As String = txtPass.Text If strUser = "drake" And strpass = "1" Then MessageBox.Show("This is where we take the user to the bard lounge.") ' 这里可以添加打开目标窗体的代码,示例: ' New BardLoungeForm().Show() ' Me.Hide() Else txtPass.Clear() ' 等价于 txtPass.Text = "" MessageBox.Show("Incorrect username and/or password.") End If End Sub
内容的提问来源于stack exchange,提问作者Drake Hood
相关产品推荐
相关产品推荐

