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

时间:2014-12-01 23:12:37

标签: asp.net vb.net visual-studio-2010

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

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

popup

errors

screenshot

类似的问题:

这个没有解决方案 - 'var_name'is not declared. It may be inaccessible due to its protection level.' in debug mode

这个说解决方案是在web.config中,但我不明白在哪里/如何 - BC30451: 'MailValidation' is not declared. It may be inaccessible due to its protection level

这是一个拼写错误的单词 - vb.net error: inaccessible due to its protection level

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

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

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

missing tools

7 个答案:

答案 0 :(得分:4)

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

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

有些问题......(答案可能在你张贴的那张照片中,但我似乎无法让它变得更大,我的眼睛看不到那么小的印刷品......你有可能发布代码在某种程度上,这些老眼睛可以阅读它?很难知道整个画面。特别是我怀疑你的Page指令。)

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

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

您可能需要找到控件1stReasonTypes。尝试将列表框放在像

这样的内容中
<div id="MyFormDiv" runat="server">.....</div>

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

Dim 1stReasonTypesNew As listbox = MyFormDiv.FindControl("1stReasonTypes")

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

但不管你如何分割它,这里有一些时髦的东西,以至于1stReasonTypes不知道它应该是哪个精确的列表框。

答案 1 :(得分:3)

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

:)

答案 2 :(得分:2)

如果我没记错的话,这是控件的默认属性。

您可以尝试进入包含指定Control的admin_reasons的Design-View,然后将控件的Modifiers属性更改为Public或Internal。

答案 3 :(得分:2)

我遇到了类似的问题。我通过使我的解决方案中的所有项目都针对相同的.NET Framework 4 Client Profile然后重建整个解决方案来解决它。

答案 4 :(得分:1)

重命名App_Code文件夹后,我发现此错误。实际上,我不小心将整个文件夹拖到App_data文件夹中。 VS 2015没有抱怨很难发现出了什么问题。

答案 5 :(得分:1)

我发现在Visual Studio版本之间移动时,您必须注释掉包装类的名称空间:

'命名空间FormsAuth

'结束命名空间

在其他时候,我必须取消注释命名空间。

当其他开发人员使用不同版本的VS编辑相同的解决方案和/或我将解决方案移动(复制)到另一个位置时,这发生了好几次。

答案 6 :(得分:0)

当我在VB.Net中的行继续字符后错误添加注释时,发生了此错误。我删除了评论,问题就消失了。