Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

c# Можно ли перехватить событие в PrintDialog-е ?

31.03.19 10:04
Re: c# Можно ли перехватить событие в PrintDialog-е ?
 
anly коренной житель
anly

Да, Winforms.

Частично решает проблему такая последовательность:

var dialog= new PrintDialog();

dialog.PrinterSettings=LoadSettingsOfDefaultPrinter();

If (dialog.ShowDialog()==DialogResult.OK)

{

....SaveSettings( dialog.PrinterSettings);

....SetDefaultPtinter(dialog.PrinterSettings.PrinterName);

}

Причем сохранять/загружать в отдельный файл для каждого принтера. Ну а если файла еще нет, то ничего не грузить.

Но в прошлом посте я указал на "бяку".

Пусть дефаулт принтер сейчас именно наш. Юзер открывает диалог и настройки принтера прочтены с диска. Все хорошо.

Но если юзер даже случайно лишь кликнет по комбобоксу и на секундочку там окажется другой принтер, в этот момент прочтенные настройки уже потеряны, там уже настройки "по умолчанию". И если теперь юзер вернет в комбобоксе наш принтер и кликнет ОК - файл будет перезаписан настойками "по умолчанию".

Т.е. очень легко испортить файл настроек.

Решается это кажись только так: загружать настройки нужно в момент обновления значения в комбобоксе.

......

Но я не нашел в PrintDialoge как к этом комбобоксу добраться. Может есть какой нестандартный способ?

Проклят нарушающий межи ближнего своего (Втор.27:17)
 

Перейти на