web-dev-qa-db-ja.com

変数は、その保護レベルのためにアクセスできない可能性があると宣言されていません

私のVBスキルは最高ではありません。この問題は数日間悩みました。

コードビハインドで定義されていないVisual Studioに表示されるコントロールのリストで、それらを「マウスオーバー」すると、ツールチップテキストがすぐにポップアップ表示されます。

popup

errors

screenshot

同様の質問:

これには解決策がありませんでした- 'var_name'は宣言されていません。デバッグモードでは保護レベルのためにアクセスできない可能性があります

これは、解決策がweb.configにあったと言っていましたが、どこで/どのように理解していない- BC30451: 'MailValidation'は宣言されていません。保護レベルのためにアクセスできない可能性があります

これはスペルミスのワードでした- vb.netエラー:保護レベルのためアクセスできません

更新-ここに私の問題が何であるかの手がかりかもしれない別の問題があります:

私のTools.vbモジュールには、LDAPにアクセスするクラスがあります。

ツールクラスの名前空間はlogin.aspx.vbコードで指定されていますが、ログインコードはツールクラスを認識しません。

missing tools

9
jp2code

エラーの最初の部分「変数が宣言されていません」に注意してください

2番目の部分は無視してください:「保護レベルのためにアクセスできない可能性があります」。ニシンです。

いくつかの質問...(答えはあなたが投稿した画像にあるかもしれませんが、私はそれを大きくすることはできないようで、私の目はその小さな印刷物を読みません...これらの古い目はそれを読むことができますか?全体像を知ることを難しくします。特に、私はあなたの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がどの正確なリストボックスであるかを知らないようなファンキーなことがあります。

4
Casey Crookston

Subはランタイムではアクセスできませんが、エディターでは完全に合法であるという同様の問題を抱えています。宛先Frameworkを4.5.1から4.5に変更することで解決しました。私のIISには4.5バージョンしかありませんでした。

:)

3
Javier

私の記憶が正しければ、これはコントロールのデフォルトプロパティです。

指定したコントロールを含むadmin_reasonsのデザインビューに移動し、コントロールのModifiersプロパティをPublicまたはInternalに変更してみてください。

2
Çöđěxěŕ

これに似た問題がありました。ソリューション内のすべてのプロジェクトが同じ.NET Framework 4 Client Profileをターゲットにし、ソリューション全体を再構築することで解決しました。

2
Joseph Mawer

App_Codeフォルダーの名前を変更すると、このエラーが短時間発生しました。実際、誤ってフォルダー全体をApp_dataフォルダーにドラッグしました。 VS 2015は、何が間違っていたのかを見つけるのが難しいと文句を言いませんでした。

1
Tom McDonald

Visual Studioのバージョン間を移動するときに、クラスをラップする名前空間をコメントアウトする必要があることがわかりました。

'Namespace FormsAuth

'名前空間の終了

それ以外の場合は、名前空間のコメントを解除する必要があります。

これは、他の開発者が別のバージョンのVSを使用して同じソリューションを編集したとき、および/または別の場所にソリューションを移動(コピー)したときに何度か起こりました

1
Bob Kiefer