В моем приложении есть функция сохранения изображений для диаграмм. Элемент управления диаграммой - это пользовательский элемент управления с пользовательской логикой. Он также имеет некоторое масштабирование в зависимости от размера, масштаба и т. Д. Однако, сохраняя их как изображение, я хотел бы дать пользователю возможность установить размер изображения (например, 800x600 px @ 300 DPI).
Для этого я создал форму с текстовыми полями / флажками и т. Д. Для различных настроек изображения. Один из этих текстовых полей предназначен для имени файла. Текстовое поле имени файла доступно только для чтения и сопровождается кнопкой обзора, которая отображает SaveFileDialog при нажатии.
Пользователь нажимает кнопку «Сохранить как изображение» в главном меню формы. Я показываю ImageExportDialog, используя код ниже:
using(ImageExportDialog dlg = new ImageExportDialog())
{
if(dlg.ShowDialog() == DialogResult.OK)
{
//get the settings selected by the user and generate the image
}
}
В ImageExportDialog пользователь нажимает кнопку обзора, и SaveFileDialog отображается следующим образом:
using(SaveFileDialog dlg = new SaveFileDialog())
{
if(dlg.ShowDialog() == DialogResult.OK)
{
txtFileName.Text = dlg.FileName;
}
}
Теперь проблема заключается в том, что когда пользователь нажимает кнопку «Сохранить» в SaveFileDialog, как и ожидалось, устанавливается txtFileName.Text, но родительский настраиваемый диалог также, похоже, возвращается из метода ShowDialog, и DialogResult совпадает с один для SaveFileDialog! Затем управление переходит к «, чтобы получить настройки, выбранные пользователем, и генерировать изображение » части кода выше.
Не совсем уверен, что я здесь не так делаю!