2012-08-15 25 views
6

我正在開發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? 
     } 

回答

7

你可以得到或通過檢查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; 
      } 
     } 
1

拆分過濾器列表。然後看看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]); 
} 
+0

偉大的答案sarathi ...我有30多個過濾器,所以這將是一個痛苦,必須做一個案例陳述。 – MatthewD 2016-02-01 22:14:49