web-dev-qa-db-fra.com

la variable n'est pas déclarée, elle peut être inaccessible en raison de son niveau de protection

Mes compétences VB ne sont pas les meilleures, et ce problème m'a bloqué pendant quelques jours.

Dans la liste des contrôles affichés dans Visual Studio qui ne sont pas définis dans le code derrière, je peux les "survoler" et le texte de l'infobulle apparaît tout droit.

popup

errors

screenshot

Questions similaires:

Celui-ci n'avait pas de solution - 'var_name'n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.' En mode débogage

Celui-ci a dit que la solution était dans le web.config, mais je ne comprends pas où/comment - BC30451: 'MailValidation' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection

Celui-ci était un mot mal orthographié - erreur vb.net: inaccessible en raison de son niveau de protection

Mise à jour - Voici un autre problème qui pourrait être un indice de mes problèmes:

Dans mon module Tools.vb , j'ai une classe pour accéder à LDAP.

L'espace de noms de la classe tools est indiqué dans le code login.aspx.vb , mais le code de connexion ne reconnaît pas la classe tools.

missing tools

9
jp2code

Faites très attention à la première partie de l'erreur: "la variable n'est pas déclarée"

Ignorez la deuxième partie: "elle peut être inaccessible en raison de son niveau de protection". C'est un hareng rouge.

Quelques questions ... (les réponses peuvent être dans cette image que vous avez publiée, mais je n'arrive pas à l'agrandir et mes yeux ne lisent pas les petits caractères ... Toute chance que vous puissiez poster le code d'une manière ces yeux plus âgés peuvent le lire? Il est difficile de connaître l'image globale. En particulier, je me méfie de vos directives Page.)

Nous savons que 1stReasonTypes est une zone de liste, mais pour une raison quelconque, il semble que nous ne savons pas QUELLE zone de liste. C'est pourquoi je veux voir vos directives de page.

Mais aussi, comment appelez-vous la méthode privée FormRefresh ()? Ce n'est pas un gestionnaire d'événements, ce qui me fait me demander si vous essayez de référencer une zone de liste sous une forme qui n'est pas gérée correctement dans ce code.

Vous devrez peut-être trouver le contrôle 1stReasonTypes. Essayez peut-être de mettre votre listbox dans quelque chose comme

<div id="MyFormDiv" runat="server">.....</div>

puis dans FormRefresh (), faites un ...

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

Ou utilisez un contrôle, un objet ou une page existant au lieu d'un div. Plus d'informations sur FindControl: http://msdn.Microsoft.com/en-us/library/486wc64h (v = vs.110) .aspx

Mais peu importe la façon dont vous le découpez, il y a quelque chose de génial ici, tel que 1stReasonTypes ne sait pas quelle zone de liste exacte il est censé être.

4
Casey Crookston

J'ai rencontré un problème similaire, avec un Sub non accessible en runtime, mais absolument légal dans l'éditeur. Il a été résolu en changeant le Framework de destination de 4.5.1 à 4.5. Il semble que mon IIS n'avait que la version 4.5.

:)

3
Javier

Si je me souviens bien, c'est la propriété par défaut des contrôles.

Pouvez-vous essayer en allant dans Design-View pour les raisons admin_reasons qui contient le contrôle spécifié, puis en changeant la propriété Modifiers du contrôle en Public ou Internal.

2
Çöđěxěŕ

J'ai eu un problème similaire à celui-ci. Je l'ai résolu en faisant en sorte que tous les projets de ma solution ciblent le même profil client .NET Framework 4, puis en reconstruisant la solution entière.

2
Joseph Mawer

J'ai reçu cette erreur brièvement après avoir renommé le dossier App_Code. En fait, j'ai accidentellement glissé tout le dossier vers le dossier App_data. VS 2015 ne s'est pas plaint qu'il était difficile de repérer ce qui avait mal tourné.

1
Tom McDonald

J'ai constaté que vous devez commenter l'espace de noms enveloppant la classe au moment du passage entre les versions de Visual Studio:

'Namespace FormsAuth

'End Namespace

et à d'autres moments, je dois décommenter l'espace de noms.

Cela m'est arrivé plusieurs fois lorsque d'autres développeurs ont modifié la même solution en utilisant une version différente de VS et/ou j'ai déplacé (copié) la solution vers un autre emplacement

1
Bob Kiefer