c# - 如何检查应用了哪些过滤器

标签 c# winforms savefiledialog

我正在开发 xpdl 格式的导出数据。有 2 个选项 - 版本 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?
        }

最佳答案

您可以通过检查 FilterIndex 来获取或设置对话框的选定过滤器属性(property)。正如 msdn 中所述:

The index value of the first filter entry is 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;
            }
        }

关于c# - 如何检查应用了哪些过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11964955/

相关文章:

c# - 在 Xamarin.iOS (Xamarin Monotouch) 中绘制圆圈以图形方式显示进度

C# - 如何在用户设置中保存文本框和复选框

.net - 带有大字体的 Windows 对话框

c# - 保存文件对话框并导出到 Excel 工作表

c# - Windows 窗体应用程序中的非抗锯齿手形光标

c# - 强制调整 DataGridView 列的大小

c# - 使用 C# 创建图表

c# - 如何在发生错误时关闭 Win32 SaveFileDialog?

c# - 依赖注入(inject) : What should be injected where?

c# - Form.Parent 和 StartPosition.CenterParent