2009-11-03 4 views
0

У меня есть проект с графиками, которые можно распечатать. При нажатии на кнопку печати, предпросмотра печати форма загружается с:VB6 Form.Show не работает

Public Sub print() 
    printPreview.Show 
End Sub 

Все отлично работает на моей машине развития и когда я запустить его в режиме отладки и при установке нашего распределенного инсталляционного пакета.

По какой-то причине все, кто пытается распечатать, никогда не смогут получить предварительный просмотр. Дальнейшее тестирование показывает, что функция предварительного просмотра никогда не вызывается и что-либо после Show в функции печати игнорируется. Это как если бы функция прыгала прямо до End Sub функции печати.

Похоже, что printPreview.Show не работает, но нет ошибки, предупреждения или ЛЮБОГО указания на что-то неправильное, кроме факта, что форма не появляется. Кто-нибудь когда-либо испытывал нечто подобное?

ответ

4

Возможно, у вас есть столбец вызова On Error Resume Next.

Возможно, вы захотите изменить функцию, чтобы иметь собственный обработчик ошибок и сообщения об ошибках там или сделать On Error GoTo 0.

Я также проверил журналы событий на машинах, где это не удается для получения дополнительной информации.

+0

Спасибо, Радж Подробнее. Это действительно помогло. Оказывается, у установщика отсутствовал компонент, но ошибка была отключена. – Everett

3

У вас есть функция «On Error ...», действующая на момент вызова меток печати? I Угадайте, что ваша форма 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 вызывает ошибку.

Смежные вопросы