Vb.net 重载解析失败,因为没有可访问的';显示';可以在不进行缩小转换的情况下调用
我一直有关于缩小转换错误的问题 重载解析失败,因为在没有缩小转换的情况下无法调用可访问的“Show”: “公共共享函数显示(所有者为System.Windows.Forms.IWin32Window,文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons)为System.Windows.Forms.DialogResult”:匹配参数“所有者”的参数从“字符串”缩小为“System.Windows.Forms.IWin32Window” “公共共享函数显示(所有者为System.Windows.Forms.IWin32Window,文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons)为System.Windows.Forms.DialogResult”:匹配参数“caption”的参数从“Microsoft.VisualBasic.MsgBoxStyle”缩小为“String” “公共共享函数显示(所有者为System.Windows.Forms.Iwin32窗口,文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons)为System.Windows.Forms.DialogResult”:匹配参数“buttons”的参数从“System.Windows.Forms.MessageBoxIcon”缩小为“System.Windows.Forms.MessageBoxButtons” “公共共享函数显示(文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons,图标为System.Windows.Forms.MessageBoxIcon)为System.Windows.Forms.DialogResult”:参数匹配参数“buttons”从“Microsoft.VisualBasic.MsgBoxStyle”缩小为“System.Windows.Forms.MessageBoxButtons” 我做了一些研究,针对“重载解析失败,因为如果不进行缩小转换,就无法调用可访问的“””的通用解决方案是:“错误是根据Microsoft的要求指定Option Strict Off。我尝试在项目属性中手动更改此项,但似乎不起作用 这是发生错误的代码:Vb.net 重载解析失败,因为没有可访问的';显示';可以在不进行缩小转换的情况下调用,vb.net,narrowing,Vb.net,Narrowing,我一直有关于缩小转换错误的问题 重载解析失败,因为在没有缩小转换的情况下无法调用可访问的“Show”: “公共共享函数显示(所有者为System.Windows.Forms.IWin32Window,文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons)为System.Windows.Forms.DialogResult”:匹配参数“所有者”的参数从“字符串”缩小为“System.Windows.Forms.IWin32Window” “
If MessageBox.Show("Please Enter a value for ESD (rad)", "ESD (rad) Value", MsgBoxStyle.OkCancel, MessageBoxIcon.Information) = DialogResult.OK Then
txtCal_USE_Radio.Focus()
我还检查了其他几个论坛,他们讨论了这个错误,但具体涉及到“新”功能,他们似乎没有帮助
这方面的任何帮助都会很好 您调用了Show({string},{MsgBoxStyle},{MessageBoxIcon})
,因此错误消息中的最后一个重载是最近的:
“公共共享函数显示(文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons,图标为System.Windows.Forms.MessageBoxIcon)为System.Windows.Forms.DialogResult”:参数匹配参数“buttons”从“Microsoft.VisualBasic.MsgBoxStyle”缩小为“System.Windows.Forms.MessageBoxButtons”
这就是Show({String},{String},{MessageBoxButtons},{MessageBoxIcon})
-您缺少标题
参数,应该使用MessageBoxButtons
枚举而不是MsgBoxStyle
听起来你的选项对
很严格-这很好-但你似乎也有导入Microsoft.VisualBasic
,这实际上是用VB6后台兼容性材料污染你的IntelliSense,而MsgBoxStyle
就是其中的一部分;该enum意味着使用遗留的MsgBox
函数,它是一个更为.NET惯用的函数替代
关闭选项Strict
将是最糟糕的一件事-您正在传递一个错误的参数,而编译器告诉您“我无法将提供的类型转换为期望的类型”;最后一件事是让它说“嘿,别担心,只是隐式地转换所有的东西,然后在运行时爆炸”
IntelliSense/autocomplete应该告诉您在函数调用中键入参数时要做什么;重新键入左括号(
,并观察IntelliSense在使用箭头键在提供的参数之间移动插入符号时突出显示参数及其各自的类型。您调用了Show({string},{MsgBoxStyle},{MessageBoxIcon})
,因此错误消息中的最后一个重载最接近:
“公共共享函数显示(文本为字符串,标题为字符串,按钮为System.Windows.Forms.MessageBoxButtons,图标为System.Windows.Forms.MessageBoxIcon)为System.Windows.Forms.DialogResult”:参数匹配参数“buttons”从“Microsoft.VisualBasic.MsgBoxStyle”缩小为“System.Windows.Forms.MessageBoxButtons”
这就是Show({String},{String},{MessageBoxButtons},{MessageBoxIcon})
-您缺少标题
参数,应该使用MessageBoxButtons
枚举而不是MsgBoxStyle
听起来你的选项对
很严格-这很好-但你似乎也有导入Microsoft.VisualBasic
,这实际上是在用VB6后台兼容性材料污染你的IntelliSense,它是MsgBoxStyle
的一部分;enum意味着使用遗留的MsgBox
函数,whichMessageBox
是一个更为.NET惯用的替代
关闭选项Strict
将是最糟糕的一件事——您传递了一个错误的参数,编译器告诉您“我无法将提供的类型转换为预期的类型”;最后要做的是让它说“嘿,别担心,只需隐式转换所有内容,然后在运行时放大”
IntelliSense/autocomplete应该告诉您在函数调用中键入参数时要做什么;重新键入左括号
(
和watch IntelliSense在您使用箭头键在所提供的参数之间移动插入符号时突出显示参数及其各自的类型。您将MessageBox与MsgBox混合更改MsgBoxStyle.ok取消为MessageBox语法
If MessageBox.Show("Please Enter a value for ESD (rad)", "ESD (rad) Value", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = DialogResult.OK Then
您正在将MessageBox与MsgBox混合,将MsgBoxStyle.OkCancel更改为MessageBox语法
If MessageBox.Show("Please Enter a value for ESD (rad)", "ESD (rad) Value", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = DialogResult.OK Then
这个错误告诉你哪里出了问题