我的应用程序中有图表的另存为图像功能。图表控件是一个自定义用户控件,其中包含自定义逻辑。它也有一些基于大小、缩放等的缩放。但是,在将它们保存为图像时,我想给用户设置图像大小的选项(例如:800x600 像素@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 与保存文件对话框!然后控件继续执行上述代码的“获取用户选择的设置并生成图像”部分。
不太确定我在这里做错了什么!