如何检查应用了哪些过滤器
Posted
技术标签:
【中文标题】如何检查应用了哪些过滤器【英文标题】: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?
【问题讨论】:
【参考方案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 多个过滤器,所以必须做一个案例陈述会很痛苦。以上是关于如何检查应用了哪些过滤器的主要内容,如果未能解决你的问题,请参考以下文章