В моем приложении WinForms данные можно распечатать во многих местах. Каждый раз, когда пользователь хочет распечатать, я создаю новый экземпляр PrintDocument, который используется для текущего задания печати, а затем удаляется. Все работает, но диалоговое окно «Печать» всегда возвращается к принтеру по умолчанию и его параметрам по умолчанию. Если выбран другой принтер, пользователь должен выбирать его каждый раз снова и снова.
Является ли распространенным подходом создание одного глобального экземпляра PrintDocument и совместное использование его для всех заданий печати в приложении? Таким образом, всегда будет использоваться последний выбранный принтер. Или есть другие способы?
Спасибо, Петр





Почему бы вам не создать один экземпляр PrinterSettings и вместо этого передать его каждому PrintDocument, который вы создаете?
Вы можете использовать одноэлементный шаблон для определения экземпляра PrinterSettings или экземпляра PrintDocument, чтобы вам не приходилось передавать ссылку.
См. Шаблон Singleton