2017-01-17 30 views
0

以我的Module1.vb代碼,如果我分配一個觀看到Form1.Width,我得到錯誤「所提及的非共享成員需要的對象引用」,如果我分配一個觀看到Form1中,我收到錯誤「Form1是一種類型,不能用作表達式」如何從Module1.vb範圍監視Form1.vb變量?

但是,Debug.Print Form1.Width的作品。

我讀到這裏 (https://msdn.microsoft.com/en-us/library/aa262343(v=vs.60).aspx) 是

Visual Basic創建爲每個窗體類一個隱藏的全局對象變量。 就好像Visual Basic中又增加了以下聲明到您的項目:Public Form1 As New Form1

是Visual Studio的手錶上(在Debug.Pring如)訪問Form1中的類,而不是作爲一個實例堅持?

我錯過了一些明顯的東西嗎?

+0

請注意,您鏈接的文章是VB6而不是VB.NET。請參閱http://stackoverflow.com/a/20077246/1070452 – Plutonix

+0

不僅僅是你有6個問題,6個答案,但都沒有接受。接受答案有助於其他用戶找到好答案,並對那些花時間解決問題的人表示「感謝」。 Upvoting *任何*後發現有幫助的答案也是一樣的。 – Plutonix

+0

嘿Plutonix,謝謝你。由於我對這個網站還比較陌生,我不知道我能/應該「接受」答案......現在我看到了一個小小的選中標記,我已經接受了每個問題的答案。您的鏈接也是信息豐富的,我想我必須多花一點時間才能真正瞭解我的頭腦和我的範圍問題。 – Zingapuro

回答

1

當您編寫自己的代碼時,使用Form1這種方式引用默認實例。調試器不支持默認實例。您需要將默認實例分配給字段或屬性,然後觀察。

調試器不支持默認實例的一個原因可能是它們是線程特定的。如果你打破多個線程,然後想看一個默認的實例,你會看到它的線程?我猜你可以默認使用UI線程,但是你無法觀看任何其他線程,也可能不被認爲是明顯的。

+0

我想也許你勾選了某人(在這輩子或以前的人)。 +1 – Plutonix