Reputation:
My VB skills are not the best, and this problem has had me stumped for a few days.
In the list of controls shown in Visual Studio that are not defined in the code behind, I can "mouseover" them and the tooltip text pops right up.
Similar questions:
This one had no solution - 'var_name'is not declared. It may be inaccessible due to its protection level.' in debug mode
This one said the solution was in the web.config, but I don't understand where/how - BC30451: 'MailValidation' is not declared. It may be inaccessible due to its protection level
This one was a misspelled word - vb.net error: inaccessible due to its protection level
In my Tools.vb module, I have a class to access LDAP.
The namespace for the tools class is given in the login.aspx.vb code, yet login code does not recognize the tools class.
Upvotes: 14
Views: 168133
Reputation: 573
Im my case the error was produced because an assembly used by several other assemblies was at .NET 4.5 instead of .NET 4.7, probably in the GAC. There was as version miss match in the global reference tree of my solution.
I included the source code of the assembly in error, modified its version to .NET 4.7 and made sure all other assemblies in my solution pointed toward this verstion. I also "neutralized" the one in the GAC, by renaming it with an underscore as the first letter.
Upvotes: 0
Reputation: 4684
This error occurred for me when I mistakenly added a comment following a line continuation character in VB.Net. I removed the comment and the problem went away.
Upvotes: 1
Reputation: 11
I have found that you have to comment out the namespace wrapping the the class at time when moving between version of Visual Studio:
'Namespace FormsAuth
'End Namespace
and at other times, I have to uncomment the namespace.
This happened to me several times when other developers edited the same solution using a different version of VS and/or I moved (copied) the solution to another location
Upvotes: 1
Reputation: 298
I had a similar issue to this. I solved it by making all the projects within my solution target the same .NET Framework 4 Client Profile and then rebuilding the entire solution.
Upvotes: 2
Reputation: 1902
I got this error briefly after renaming the App_Code folder. Actually, I accidentally dragged the whole folder to the App_data folder. VS 2015 didn't complain it was difficult to spot what had gone wrong.
Upvotes: 1
Reputation: 51
I have suffered a similar problem, with a Sub not accessible in runtime, but absolutely legal in editor. It was solved by changing destination Framework from 4.5.1 to 4.5. It seems that my IIS only had 4.5 version.
:)
Upvotes: 5
Reputation: 13955
Pay close attention to the first part of the error: "variable is not declared"
Ignore the second part: "it may be inaccessible due to its protection level". It's a red herring.
Some questions... (the answers might be in that image you posted, but I can't seem to make it larger and my eyes don't read that small of print... Any chance you can post the code in a way these older eyes can read it? Makes it hard to know the total picture. In particular I am suspicious of your Page directives.)
We know that 1stReasonTypes is a listbox, but for some reason it seems like we don't know WHICH listbox. This is why I want to see your page directives.
But also, how are you calling the private method FormRefresh()? It's not an event handler, which makes me wonder if you are trying to reference a listbox in a form that is not handled properly in this code behind.
You may need to find the control 1stReasonTypes. Try maybe putting your listbox inside something like
<div id="MyFormDiv" runat="server">.....</div>
then in FormRefresh(), do a...
Dim 1stReasonTypesNew As listbox = MyFormDiv.FindControl("1stReasonTypes")
Or use an existing control, object, or page instead of a div. More info on FindControl: http://msdn.microsoft.com/en-us/library/486wc64h(v=vs.110).aspx
But no matter how you slice it, there is something funky going here such that 1stReasonTypes doesn't know which exact listbox it's supposed to be.
Upvotes: 6
Reputation: 8004
If I remember correctly, this is the default property for controls.
Can you try by going into Design-View for the admin_reasons that contains the specified Control, then changing the control's Modifiers property to Public or Internal.
Upvotes: 3