2012-08-15 6 views
6

Ich entwickle das Exportieren von Daten im xpdl-Format. Es gibt 2 Optionen - Version 2.1 und 2.2. Ich verwende SaveFileDialog, aber wie kann ich zwischen diesen beiden Optionen unterscheiden?Wie überprüft man, welcher Filter angewendet wird

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

Antwort

7

können Sie abrufen oder festlegen, indem geprüft FilterIndex Eigenschaftsfilter für Dialoge ausgewählt. Und wie in Msdn erklärte:

Der Indexwert des ersten Filters Eintrag 1.

Also für Ihre Aufgabe wäre es:

 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 der Filterliste. Dann schau dir den FilterIndex an.

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

Große Antwort Sarathi ... Ich habe über 30 Filter, so wäre es ein Schmerz, eine Fallaussage zu tun. – MatthewD