Asp.net

變數未聲明它可能由於其保護級別而無法訪問

  • July 27, 2020

我的VB技能不是最好的,這個問題讓我難過了幾天。

在 Visual Studio 中顯示的未在後面的程式碼中定義的控制項列表中,我可以“將滑鼠懸停”它們並且工具提示文本會立即彈出。

彈出視窗

錯誤

截屏

類似的問題:

這個沒有解決方案 - ‘var_name’ 沒有聲明。由於其保護級別,它可能無法訪問。在調試模式

這個人說解決方案在 web.config 中,但我不明白在哪裡/如何 - BC30451: ‘MailValidation’ 沒有聲明。由於其保護級別,它可能無法訪問

這是一個拼寫錯誤的詞 - vb.net 錯誤:由於其保護級別而無法訪問

更新 - 這是另一個問題,可能是我的問題的線索:

在我的Tools.vb模組中,我有一個訪問 LDAP 的類。

工具類的命名空間在login.aspx.vb程式碼中給出,但登錄程式碼無法辨識工具類。

缺少工具

密切注意錯誤的第一部分:“變數未聲明”

忽略第二部分:“由於其保護級別,它可能無法訪問”。這是一條紅鯡魚。

一些問題…(答案可能在您發布的那張圖片中,但我似乎無法將其放大,而且我的眼睛也看不到那麼小的字型…任何機會您都可以以某種方式發布程式碼這些年長的眼睛能看懂嗎?很難了解整體情況。尤其是我懷疑你的頁面指令。)

我們知道 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 不知道它應該是哪個確切的列錶框。

引用自:https://stackoverflow.com/questions/27239115