调用MessageBox.Show时提示参数p1未指定,该如何解决?
解决MessageBox.Show调用时的参数错误问题
嘿,我一眼就看出问题所在啦😉
你遇到的这个错误,核心原因是命名冲突:你自己定义了一个名为MessageBox的私有属性,它和.NET框架自带的System.Windows.Forms.MessageBox类重名了。编译器现在会优先识别你自定义的这个属性,而不是系统提供的MessageBox类,所以当你调用.Show()方法时,就会触发这个参数缺失的错误。
两种解决方案:
方案1:重命名自定义属性(推荐)
把你自己定义的Private Property MessageBox(p1 As String) As System.Windows.Forms.MessageBox改成别的名字,比如MyMessageBox,彻底避免命名冲突:
' 修改前 Private Property MessageBox(p1 As String) As System.Windows.Forms.MessageBox ' 修改后 Private Property MyMessageBox(p1 As String) As System.Windows.Forms.MessageBox
之后你的原有调用代码就可以正常工作了。
方案2:显式指定命名空间
如果不想修改自定义属性的名字,那就在调用Show方法时,加上完整的命名空间,明确告诉编译器要使用系统的MessageBox类:
Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click 'validation If String.IsNullOrWhiteSpace(txtNameSurname.Text) Then ' 显式指定命名空间 System.Windows.Forms.MessageBox.Show("Name can not be empty", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning) Exit Sub End If 'if valid calc Membership No txtMemberNo.Text = setMembershipNo(dateBirth.Value.Date) 'call Athlete class to add data End Sub
这样就能解决这个参数错误的问题啦!
内容的提问来源于stack exchange,提问作者AquaAlex
相关产品推荐
相关产品推荐

