9

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

        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?
        }
4

2 回答 2

12

您可以通过检查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;
            }
        }
于 2012-08-15T06:29:14.987 回答
2

拆分过滤器列表。然后查看FilterIndex。

SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "xpdl 2.1|*.xpdl|xpdl 2.2|*.xpdl";
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    string[] filterstring = saveFilaDialog.Filter.Split('|');
    MessageBox.Show(filterstring[(saveFilaDialog.FilterIndex - 1) * 2]);
}
于 2014-09-02T08:23:05.870 回答