2012-08-15 27 views
6

Estoy desarrollando la exportación de datos en formato xpdl. Hay 2 opciones: la versión 2.1 y 2.2. Estoy usando SaveFileDialog, pero ¿cómo puedo distinguir entre esas 2 opciones?Cómo comprobar qué filtro se aplica

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

Respuesta

7

Usted puede obtener o establecer seleccionada filtro para cuadros de diálogo mediante la comprobación de FilterIndex propiedad. Y como se indica en MSDN:

El valor del índice de la primera entrada de filtro es 1.

Así que para su tarea sería:

 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

Dividir la lista de filtros. Luego mira el 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

Gran respuesta sarathi ... Tengo más de 30 filtros así que sería un dolor tener que hacer una declaración de caso. – MatthewD

Cuestiones relacionadas