2012-08-15 2 views
6

xpdl 형식으로 데이터 내보내기를 개발 중입니다. 버전 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

관련 문제