【问题标题】:How to check what filter is applied如何检查应用了哪些过滤器
【发布时间】:2012-08-15 06:28:26
【问题描述】:

我正在开发 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?
        }

【问题讨论】:

    标签: c# winforms savefiledialog


    【解决方案1】:

    您可以通过检查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;
                }
            }
    

    【讨论】:

      【解决方案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]);
      }
      

      【讨论】:

      • 很好的答案 sarathi...我有 30 多个过滤器,所以必须做一个案例陈述会很痛苦。
      猜你喜欢
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 2015-08-30
      • 2010-12-17
      • 1970-01-01
      相关资源
      最近更新 更多