2012-08-15 10 views
6

Verileri xpdl biçiminde geliştiriyorum. 2 seçenek var - sürüm 2.1 ve 2.2. SaveFileDialog kullanıyorum, ancak bu 2 seçenek arasında nasıl ayrım yapabilirim?Hangi filtrenin uygulandığını kontrol etme

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

cevap

7

Sen alabilirsiniz ya FilterIndex özelliğini kontrol ederek iletişim kutuları için filtreyi seçilmiş ayarlayın. msdn dile getirdikleri gibi:

ilk filtre girdisinin endeks değeri olurdu senin görevin 1.

Yani geçerli:

 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

Bölünmüş Filtre listesi. Ardından FilterIndex'e bakın. o bir ağrı case ifadesi yapmak zorunda olacağını, böylece

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

Güzel cevap Sarathi ... Ben 30 filtreleri var. – MatthewD