Печать WinForms: как я могу получить доступ к диалоговому окну прогресса?

При печати в формах Windows или предварительном просмотре печати отображается диалоговое окно с текстом, например

Страница [P] из [DOC]

где [P] - номер страницы, а [DOC] - имя документа. В диалоговом окне также есть кнопка, позволяющая пользователю отменить задание на печать.

Как я могу изменить отображаемый текст? Я бы предпочел текст вроде

Страница [P] из [Pages]

где [Pages] - общее количество страниц, чтобы дать пользователю представление о том, сколько времени потребуется для печати всех страниц. Если возможно, я также хотел бы показать индикатор выполнения, потому что, когда задание печати запускается, я точно знаю, сколько страниц будет напечатано.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
615
1

Ответы 1

Я сделал это:

  • Создайте свой собственный класс из PrintDocument, обрабатывая всю печать
  • Установите контроллер печати на новый StandardPrintController (тогда диалоговое окно не отображается)
  • Отобразите свой собственный диалог, например отображать и закрывать в OnBeginPrint и OnEndPrint, обновлять в OnPrintPage

Если я правильно помню, не было возможности изменить текст, а поскольку диалог по умолчанию нельзя локализовать, мы не могли его использовать. Тем не менее, он отлично работает с тем, что я написал выше.

Другие вопросы по теме