如何检查应用了哪种过滤器

use*_*878 8 c# savefiledialog winforms

我正在开发以xpdl格式导出数据.有两个选项 - 版本2.1和2.2.我正在使用SaveFileDialog,但我如何区分这2个选项?

        SaveFileDialog dlg = new SaveFileDialog();
        dlg.Filter = "xpdl 2.1|*.xpdl|xpdl 2.2|*.xpdl";
        if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            //how can I check, which format is selected?
        }
Run Code Online (Sandbox Code Playgroud)

Jle*_*HeP 11

您可以通过选中FilterIndex属性来获取或设置对话框的选定过滤器.并如msdn中所述:

第一个过滤条目的索引值为1.

所以对于你的任务,它将是:

        SaveFileDialog dlg = new SaveFileDialog();
        dlg.Filter = "xpdl 2.1|*.xpdl|xpdl 2.2|*.xpdl";
        if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            switch (dlg.FilterIndex)
            {
                case 1:
                    //selected xpdl 2.1
                    break;
                case 2:
                    //selected xpdl 2.2
                    break;
            }
        }
Run Code Online (Sandbox Code Playgroud)