由于其保护级别,未声明变量可能无法访问

jp2*_*ode 10 vb.net asp.net visual-studio-2010

我的VB技能不是最好的,这个问题让我难以忍受了几天.

在Visual Studio中显示的控件列表中,未在后面的代码中定义,我可以"鼠标悬停"它们,工具提示文本会弹出.

弹出

错误

截图

类似的问题:

这个没有解决方案 - 'var_name'没有声明.由于其保护级别,它可能无法访问.在调试模式下

这个说解决方案是在web.config,但我不明白在哪里/如何 - BC30451:'MailValidation'没有声明.由于其保护级别,它可能无法访问

这是一个拼写错误的单词 - vb.net错误:由于其保护级别而无法访问

更新 - 这是另一个问题,可能是我的问题的线索:

在我的Tools.vb模块中,我有一个访问LDAP的类.

工具类的命名空间在login.aspx.vb代码中给出,但登录代码无法识别工具类.

缺少工具

use*_*704 5

密切关注错误的第一部分:“变量未声明”

忽略第二部分:“由于其保护级别,它可能无法访问”。这是一条红鲱鱼。

一些问题......(答案可能在你张贴的那张图片中,但我似乎无法把它放大,我的眼睛也看不懂那么小的印刷品......任何你可以以某种方式发布代码的机会这些年长的眼睛能看懂吗?很难知道整个画面。特别是我怀疑你的页面指令。)

我们知道 1stReasonTypes 是一个列表框,但由于某种原因,我们似乎不知道哪个列表框。这就是为什么我想查看您的页面指令。

但是,您如何调用私有方法 FormRefresh()?它不是一个事件处理程序,这让我想知道您是否正在尝试在后面的代码中未正确处理的表单中引用列表框。

您可能需要找到控件 1stReasonTypes。尝试将您的列表框放在类似的东西中

<div id="MyFormDiv" runat="server">.....</div>
Run Code Online (Sandbox Code Playgroud)

然后在 FormRefresh() 中,做一个...

Dim 1stReasonTypesNew As listbox = MyFormDiv.FindControl("1stReasonTypes")
Run Code Online (Sandbox Code Playgroud)

或者使用现有的控件、对象或页面而不是 div。有关 FindControl 的更多信息:http : //msdn.microsoft.com/en-us/library/486wc64h( v=vs.110) .aspx

但无论你如何切片,这里都有一些奇怪的东西,以至于 1stReasonTypes 不知道它应该是哪个确切的列表框。


小智 5

我遇到了类似的问题,在运行时无法访问 Sub,但在编辑器中绝对合法。通过将目标框架从 4.5.1 更改为 4.5 解决了这个问题。看来我的IIS只有4.5版本。

:)