我的应用程序中的图表具有另存为图像功能。图表控件是一个自定义用户控件,其中包含自定义逻辑。它还有一些基于大小,缩放等的缩放。但是,在将它们保存为图像时,我想让用户选择设置图像的大小(例如:800x600 px @ 300 DPI)。
为此,我创建了一个带有文本框/复选框等的表单,用于图像的各种设置。其中一个TextBox用于文件名。文件名文本框是只读的,并附带一个浏览按钮,单击时显示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中的“Save”按钮时,正如预期的那样设置了txtFileName.Text,但是父自定义对话框似乎也从ShowDialog方法返回,并且DialogResult与SaveFileDialog的那个!然后控件继续进行“获取用户选择的设置并生成图像”部分代码。
不确定我在这里做错了什么!
答案 0 :(得分:0)
Arghhh !!!
我自己发现了这个问题。我已经复制粘贴了ImageExportDialog的OK按钮,为SaveFileDialog创建了Browse按钮。
猜猜是什么,浏览按钮将DialogResult属性设置为“OK”!将其更改为“无”解决了这个问题。