2010-10-16 109 views
0

我複製了我的教科書中的確切代碼,並且出現以下錯誤。Visual Basic 2010/Sub Procedure

Error 3 'txtOutput' is not declared. It may be inaccessible due to its protection level. C:\Users\Woong-Sup\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 13 17 WindowsApplication1 

Error 4 'txtOutput' is not declared. It may be inaccessible due to its protection level. C:\Users\Woong-Sup\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 15 17 WindowsApplication1 

Error 1 Handles clause requires a WithEvents variable defined in the containing type or one of its base types. C:\Users\Woong-Sup\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 2 44 WindowsApplication1 

請問誰能告訴我問題是什麼?如果我可以在MSN上添加你並提出更多問題,我將不勝感激!感謝

Public Class Form1 
    Private Sub btnDisplay_Click() Handles btnDisplay.Click 
     Dim anyDate As Date 
     anyDate = CDate(InputBox("Input a date. (mm/dd/yyyy)")) 
     ShowCentury(anyDate) 
    End Sub 

    Sub ShowCentury(ByVal anyDate As Date) 
     Select Case anyDate 
      Case Is >= #1/1/2000# 
       txtOutput.Text = "twenty-first century" 
      Case Is >= #1/1/1900# 
       txtOutput.Text = "twentieth century" 
      Case Else 
       txtOutput.Text = "prior to the twentieth century" 
     End Select 
    End Sub 
End Class 

回答

0

這是一個局部類;它不會獨立存在。這個類的「Form1」是其中的一部分(你有一個名爲「Form1」的表單,對吧?)需要一個名爲「btnDisplay」的按鈕和一個名爲「txtOutput」的文本框。

如果您有這樣的表單,並且上面的控件存在,請確保爲它們的「GenerateMember」屬性設置爲True。

+0

哦,我會試試看:) – 2010-10-16 08:45:10

+0

你的意思是AccessibleName,對吧?我改變了它,我設置了「 GenerateMember「屬性設置爲True,因爲你告訴我,但它仍然有相同的問題。:( – 2010-10-16 08:50:24

+0

只是所以我們不會錯過任何顯而易見的東西......你的窗體被稱爲」Form1「,對吧?(如果不是,VB可能仍然會生成表單類,但是你的代碼不會成爲它的一部分 - 它只是一個額外的類。)不,我不是指AccessibleName - 這是爲了可訪問性東西(即:幫助盲人等),並且不應該影響控制是否出現在代碼中。 – cHao 2010-10-16 09:04:12

0

txtOutput應表單上的文本框(form1上文)

+0

我仍然有同樣的錯誤... :(對不起,我是一個noob,我知道這個問題是非常簡單的。 – 2010-10-16 08:39:37

+0

你是否在設計模式中添加了一個文本框到form1? – 2010-10-16 08:41:44

+0

是的,我做了,沒有任何東西.. :(可以有人加我在MSN上,並幫助我一點點嗎?[email protected] – 2010-10-16 08:44:34

0

這是一個古老的問題,但很有趣。我發現一個可能的問題...

當我將代碼粘貼到Form1中,然後添加按鈕和文本框時,即使根據代碼中的名稱對它們進行重命名,也會得到相同的錯誤。

但是,當我首先添加按鈕和文本框,然後粘貼代碼後,重命名按鈕和文本框後,它工作正常。

另一個奇怪的是,當我先粘貼代碼然後添加按鈕和文本框(就像我在第一個示例中那樣)時,我可以從代碼中複製按鈕名稱和文本框名稱,並將它們粘貼到屬性窗口中它會工作。用鍵盤輸入名字不起作用。

我不知道它爲什麼這樣工作,但至少它部分有助於解釋這個問題。

我認爲這是IDE或編譯器中的錯誤。