2012-08-15 11 views
6

Sto sviluppando i dati di esportazione in formato xpdl. Ci sono 2 opzioni - versione 2.1 e 2.2. Sto usando SaveFileDialog, ma come faccio a distinguere tra queste 2 opzioni?Come verificare quale filtro viene applicato

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

risposta

7

È possibile ottenere o impostare il filtro selezionato per le finestre di dialogo selezionando la proprietà FilterIndex. E, come indicato nel MSDN:

Il valore di indice della prima voce filtro è 1.

Quindi per il vostro compito sarebbe:

 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

Split dei filtri. Quindi guarda il 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

Grande risposta sarathi ... Ho oltre 30 filtri quindi sarebbe un dolore dover fare una dichiarazione di caso. – MatthewD

Problemi correlati