2017-02-12 34 views
0

我在Visual Studio 2015中的Visual Basic窗體應用程序中遇到困難。我試圖在向其傳遞變量時顯示EditSeries窗體。代碼如下:調用表單無法初始化組件 - Visual Basic

Private Sub btnEditSeries_Click(sender As Object, e As EventArgs) Handles btnEditSeries.Click 
    Dim frm As EditSeries 
    frm = New EditSeries(SeriesID) 
    frm.SeriesID = SeriesID 
    frm.Show() 
End Sub 

當我以調試模式運行程序時,單擊EditSeries按鈕會產生一個沒有控件或自定義的空白表單。幫助我學習編碼的人(誰已經編碼了20年)同樣令人困惑;他建議刪除並重新創建表單,懷疑在Visual Studio中組成表單的三個核心文件之間出現中斷。我做到了,但行爲依然存在。

我一直無法在Internet上找到對此問題的任何引用,並且我在運行時包含空白表單的截圖以及它應該看起來像什麼的設計視圖。

How The Form Should Look

Blank Form At Run-time

我首先把代碼從「的Form_Load」部分中的SQL數據庫填充數據,但是這僅產生一個空引用異常。將代碼移動到按鈕單擊允許顯示空白表單。

目標是將變量的值從所有系列表單(在空白表單背景中看到)傳遞到EditSeries表單,該表單將允許代碼從數據庫中提取一個特定系列的數據進行編輯目的。

我感謝您的時間和幫助!

+0

好吧,我們知道什麼是空白表格,我們看不到您編寫的代碼。誤吞的異常往往是一種解釋,請查看輸出窗口中的提示。不要忽略NullReferenceException,或者下一步做任意事情,它總是一個編碼錯誤。由於設計時出現異常,表單的設計被破壞是另一種情況,請單擊「顯示所有文件」按鈕,以便打開Designer.vb文件並查看InitializeComponent()方法。 –

+0

那麼,你不應該試圖運行一個不編譯的項目。您通常會收到警告,但點擊「不再顯示」複選框很容易,您再也看不到它了。修復設置,使其不會發生:工具>選項>項目和解決方案>構建和運行,「在運行時發生構建或部署錯誤時」,選擇「不啓動」。對於上面那個最好的設置是「始終構建」。 –

回答

0

漢斯的評論「它總是一個編碼錯誤」指出了我的正確方向。

在我EditSeries.vb,有下面的代碼:

Public Sub New(seriesID As Integer) 
    Me.SeriesID = seriesID 
End Sub 

我不知道,如果放置在EditSeries.vb文件的問題,但它之前的Form_Load部分定位。當我刪除這個子例程時,表單按預期加載。

非常感謝Hans Passant指引我朝着正確的方向!