我试试,当我在SaveFileDialog
按保存时,我会做点什么。我尝试修复但总是出错。
SaveFileDialog dlg2 = new SaveFileDialog();
dlg2.Filter = "xml | *.xml";
dlg2.DefaultExt = "xml";
dlg2.ShowDialog();
if (dlg2.ShowDialog() == DialogResult.OK)
{....}
但我对OK有错误 - 说:
错误: 'System.Nullable'不包含'OK'的定义,并且没有扩展方法'OK'可以找到接受类型'System.Nullable'的第一个参数(你是否缺少using指令或汇编引用? )
我尝试修复此代码:
DialogResult result = dlg2.ShowDialog(); //here is error again
if (result == DialogResult.OK)
{....}
现在错误在DialogResult上说: 'System.Windows.Window.DialogResult'是'属性',但用作“类型”
答案 0 :(得分:11)
我认为您指的是WPF
而非Windows Form
以下是使用SaveFileDialog
//configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "Document"; //default file name
dlg.DefaultExt = ".xml"; //default file extension
dlg.Filter = "XML documents (.xml)|*.xml"; //filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
}
其他示例:
在WPF
中,您必须处理DialogResult
枚举与Window.DialogResult
财产之间的冲突
尝试使用完全限定名称来引用枚举:
System.Windows.Forms.DialogResult result = dlg2.ShowDialog();
if (result == DialogResult.OK)
{....}
答案 1 :(得分:0)
DialogResult
返回System.Windows.Forms.DialogResult
。因此,您可以像这样使用=>
DialogResult result = dlg2.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{....}
答案 2 :(得分:0)
代替检查dlg2.ShowDialog()是否等于DialogResult.OK,只需检查其是否等于true
if (dlg2.ShowDialog() == true)
{....}
答案 3 :(得分:0)
这是一个非常古老的话题,但我会为您提供解决方案。您要查找的对话框结果(对于savefiledialog)是.Yes或!Cancel,因此它看起来像这样:
if (dlg2.ShowDialog() == DialogResult.Yes)
或
if (dlg2.ShowDialog() != DialogResult.Cancel)