c# Можно ли перехватить событие в PrintDialog-е ?
Да, Winforms.
Частично решает проблему такая последовательность:
var dialog= new PrintDialog();
dialog.PrinterSettings=LoadSettingsOfDefaultPrinter();
If (dialog.ShowDialog()==DialogResult.OK)
{
....SaveSettings( dialog.PrinterSettings);
....SetDefaultPtinter(dialog.PrinterSettings.PrinterName);
}
Причем сохранять/загружать в отдельный файл для каждого принтера. Ну а если файла еще нет, то ничего не грузить.
Но в прошлом посте я указал на "бяку".
Пусть дефаулт принтер сейчас именно наш. Юзер открывает диалог и настройки принтера прочтены с диска. Все хорошо.
Но если юзер даже случайно лишь кликнет по комбобоксу и на секундочку там окажется другой принтер, в этот момент прочтенные настройки уже потеряны, там уже настройки "по умолчанию". И если теперь юзер вернет в комбобоксе наш принтер и кликнет ОК - файл будет перезаписан настойками "по умолчанию".
Т.е. очень легко испортить файл настроек.
Решается это кажись только так: загружать настройки нужно в момент обновления значения в комбобоксе.
......
Но я не нашел в PrintDialoge как к этом комбобоксу добраться. Может есть какой нестандартный способ?