2016-06-29 35 views
-1

我遇到的問題是我在主屏幕上使用菜單欄,並且所有選項卡/按鈕都是除了一個工作,其中不是打開我想要的表單,而是打開標準的普通表單,在將任何內容添加到表單之前,您會看到一個標準的表單。如果我更改表單標識符,我希望它打開然後它可以工作,而不是這種形式。有人知道爲什麼嗎?這裏的頂級子程序是有問題的子程序,下面的子程序是可行的。我設計的表單不能打開按鈕單擊,它打開普通的,默認的一個而不是

Private Sub SupportIncidentsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SupportIncidentsToolStripMenuItem.Click 
    Dim f As frmIncidents 
    f = New frmIncidents(con, AccCon) 
    f.Show() 
End Sub 


Private Sub EmailLogsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EmailLogsToolStripMenuItem.Click 
    Dim f As frmEmailLogs 
    f = New frmEmailLogs(con) 
    f.MdiParent = Me 
    f.Show() 
End Sub 
+0

當您調試代碼並執行代碼時發生了什麼?這可能是一個父母,所有者發行.. – MethodMan

回答

0

在添加此構造最後,答案是我有兩個構造函數在我的類中相互覆蓋,所以顯示的是簡單的形式,而不是我設計的第一個構造函數會顯示的形式。

2

這一行你要撥打的需要兩個參數

f = New frmIncidents(con, AccCon) 

因此,在您frmIncidents類手動添加一個構造這樣一個

Public Sub frmIncidents(con as WhatEverConIs, Acon as WhatEverAConIs) 


End Sub 

但是每一種形式的構造構造函數應調用InitializeComponent方法,該方法是由WinForms Designer自動創建的方法,具有表單控件聲明和通過設計人員設置的相關屬性。

Very simple definition of InitializeComponent

已經手動和看空的形式呈現,當你調用Show方法我敢肯定,你忘了將呼叫添加到InitializeComponent

Public Sub frmIncidents(con as WhatEverConIs, Acon as WhatEverAConIs) 

    InitializeComponent() 
End Sub 
+1

所以如果我添加InitializeComponent()並保持其餘的代碼相同,你說這應該做到這一點? – David

+0

當然......沒有這個調用的表單是空的,InitializeComponent位於一個以你的表單類和.Designer.vb命名的文件中。通常這個文件是隱藏的,但是你可以在Solution Explorer窗口中按下Show All Files按鈕來查看它。打開它,您將看到通過WinForms設計器準備好的所有用於構建用戶界面的代碼 – Steve

相關問題