2009-11-03 88 views
0

我有一個可以打印圖形的項目。當你點擊打印按鈕,打印預覽的形式加載與:VB6 Form.Show不起作用

Public Sub print() 
    printPreview.Show 
End Sub 

一切正常,我的開發機器上既當我在調試模式下運行它,當我安裝我們的分佈式安裝包。

由於某些原因,嘗試打印的其他人無法預覽顯示。進一步的測試表明,Load預覽的功能從未被調用,並且在打印功能中的Show之後的任何內容都將被忽略。就好像該功能正好跳轉到打印功能的End Sub

它看起來像printPreview.Show失敗,但沒有錯誤,警告或任何錯誤的指示,除了表單沒有出現的事實。有沒有人經歷過這樣的事情?

回答

4

你可能有一個On Error Resume Next在某處的調用堆棧。

您可能需要更改函數以使其自己的錯誤處理程序和陷阱消息存在或執行On Error GoTo 0

我還會檢查機器上發生故障的事件日誌是否有任何其他信息。

+0

謝謝,Raj More。這真的有幫助。事實證明,安裝程序丟失了一個組件,但錯誤正在消失。 – Everett

3

打印方式被調用時,您有任何「On Error ...」有效嗎?我猜想您的printPreview表單依賴於未安裝在用戶計算機上的一個或多個組件,並且拋出一個錯誤,但您沒有意識到這一點。

0

你有沒有試過通過vbModal,只是爲了看看會發生什麼?同時(你可能已經這樣做了),把一些調試語句插入代碼:

Public Sub print() 
    Debug.Print "Before show" 
    printPreview.Show 
    Debug.Print "After Show" 
End Sub 

並把一些和Class_Initialize打印的(隱式調用如果表單實例不存在!)預覽形式,以及:

' In the print preview form: 

Public Sub Class_Initialize() 
    Debug.Print "Start of PrintPreview constructor" 
    ' … rest of the code. 
    Debug.Print "End of PrintPreview constructor" 
End Sub 

Private Sub Form_Load() 
    Debug.Print "Start of PrintPreview.Form_Load" 
    ' … rest of the code. 
    Debug.Print "End of PrintPreview.Form_Load" 
End Sub 

並確保其中完全輸出丟失。

從你相當稀疏的描述中,我懷疑Class_Initialize方法會引發錯誤。