powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отображение формы после печати или закрытия печати - VB
11 сообщений из 11, страница 1 из 1
Отображение формы после печати или закрытия печати - VB
    #39619655
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите кто нибудь как дальше быть, нажимаю кнопку печать, выскакивает просмотр на печать, а вот после проблема, когда закрываю просмотр печати формы 3 нет, что нужно прописать что бы при закрытии печати документа Ворд, появлялась форма 3?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Form3.Hide
wd.Visible = True
 wd.ActiveDocument.PrintPreview

'????


Form3.Show
End If
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39619957
Фотография Nik_Kurta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, Form3.Visible = True '?
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620364
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nik_Kurta, да нет это тут причем, я и так форму прячу Form3.Heid, примерно как в XL, только в Ворде не получается так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub jcbutton3_Click() 'печать
Me.Hide
xl.Visible = True 'делаем книгу видимой
  xl.worksheets("Лист1").Visible = True 'видимость листа
   xl.Workbooks("Книга").Sheets("Лист1").PrintPreview 'предварительный просмотр листа
     xl.Workbooks("Лист1").Save 'сохранение 
      '++++++++++++ ' ПОСЛЕ ЗАКРЫТИЕ ЛИСТА ПЕЧАТИ ВЫПОЛНЯЕТСЯ ЭТОТ КОД
         xl.worksheets("Лист1").Visible = False
          xl.Visible = False
  '+++++++++++++++
  Form1.Show
Exit Sub
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620440
Фотография by-pass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,

Может до конца процедуры не добираетесь?
Где обработка ошибок?
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620494
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько помню, окно предпросмотра в Excel является окном модальным, т.е. после того как оно выведено на экран код останавливается и ждет обработки действий внутри этого окна. Как только его закрываем - код продолжает работу. В Word-e же это окно немодальное и код у Вас как только его показал сразу идет дальше, не дожидаясь действий внутри него. Может у Вас там потом идет код выгрузки формы, поэтому и проблема возникает?
Пробовали в пошаговой отладке пройти код и посмотреть - действительно ли строка Form3.Show запускается после закрытия окна предпросмотра? Или все это происходит раньше?
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620540
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist, вы совершенно правильно все описали, код не останавливается как в xl., а проходит дальше и открывает форму, что можно сделать в данном случае?
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620544
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist, простите не ответил на ваш вопрос! так мне и надо что бы после закрытия печати выгружалась форма
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620680
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,

я такого вопроса в общем-то и на задавал :)
Если надо отобразить форму только после закрытия окна предпросмотра, то я могу предложить метод через "костыль". В форме оставляете свой код, но вместо Form3.Show записываете строку Call IsPreview:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Form3.Hide
wd.Visible = True
 wd.ActiveDocument.PrintPreview

'????


Call IsPreview
End If


в стандартном модуле(не в модуле формы!) создаете код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Sub IsPreview()
    If Application.CommandBars("Print Preview").Visible Then
        Application.OnTime Now + TimeSerial(0, 0, 1), "IsPreview"
    Else
        Form3.Show
    End If
End Sub


Этот код с интервалом в 1 секунду будет проверять, открыто ли окно предпросмотра. И если открыто - будет вызывать сам себя. Если нет - покажет форму. По идее это должно создать такой же эффект, как и в Excel.
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620689
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл, Вы же из VB это делаете. Тогда можно сделать такой же подход, но просто создать новую форму, кинуть на форму Timer с интервалом в секунду(interval = 1000) и опрашивать. Забыл уже как точно в VB это сделать, а под рукой нет сейчас. Но процедура для таймера должна выглядеть как-то так:
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Timer1_Timer()
    If Not wd.CommandBars("Print Preview").Visible Then
        Unload Me
        Form3.Show
    End If
End Sub


А в основной форме(Form3 или может это другая вообще процедура) примерно такой код:
Код: vbnet
1.
2.
3.
4.
    Form3.Hide
    wd.ActiveDocument.PrintPreview
    FormTimer.Show
    FormTimer.Visible = False


только учитывайте, что переменная wd должна быть объявлена как Public на уровне проекта.
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620748
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, можно проще, чё-то я туплю. Создаете на Form3 таймер процедура будет выглядеть как-то так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub Command1_Click()
Form3.Visible = False
wd.Visible = True
wd.ActiveDocument.PrintPreview
Timer1.Interval = 1000
'????
End sub

Private Sub Timer1_Timer()
if Not wd.CommandBars("Print Preview").Visible then
Timer1.Interval = 0
form3.Visible = true
end if
End sub
...
Рейтинг: 0 / 0
Отображение формы после печати или закрытия печати - VB
    #39620892
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist, очень интересный подход к решению! теперь скажите где кнопка спасибо, ОЧЕНЬ хочется нажать кнопку СПАСИБО!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отображение формы после печати или закрытия печати - VB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]