2011-01-28 3 views
0

현재 스위치 문을 사용하여 학교 프로젝트로 시간대를 변경하려고합니다.C# 콤보 상자로 명령문을 전환 하시겠습니까?

if (extTime1.timeZone == "CDT") 
{ 
    switch (cboTimeZone.SelectedItem.ToString) 
    { 
     case "EST": 
     time1.Hour = time1.Hour + 1; /* CDT hours + 1 to get EST */ 
     extTime1.Hour = extTime1.Hour + 1; 
     break; 

     case "MST": 
     time1.Hour = time1.Hour - 1; /* CDT hours - 1 to get MST */ 
     break; 

     case "PST": 
     time1.Hour = time1.Hour - 2; /* CDT hours - 2 to get PST */ 
     break; 

     default: /* CDT is the default time zone*/ 
     break; 
    } 

} 

제대로 작동하지 않는 것으로 보입니다. 나는 항상 SelectedItem이이 상황에서 올바른 선택이라고 생각했다. 분명히?

+0

무엇'SelectedIndex' 대해를? – BoltClock

+0

이것이 데이터 바인딩 된 경우 SelectedItem이 올바를 것입니다. 난 그냥 aspx 파일에 정의 된 콤보 상자 항목의 목록을 가지고있는 것 같아요? –

+0

컬렉션에있는 콤보 상자의 항목에 대한 개체 유형은 무엇입니까? – Gabe

답변

1

.Text. asp.net 아약스 콤보 상자는 실제로 ITextControl 인터페이스를 구현하는 텍스트 상자와 드롭 다운 목록의 조합입니다.

+0

당신은 선생님입니다. : D 감사합니다. 그 밖의 모든 사람들. –

0

날이 보자 :

if (extTime1.timeZone == "CDT") 
{ 
    // Try this 
    string text = cboTimeZone.SelectedItem.ToString(); // don't forget the parenthesis 
    MessageBox.Show(text, "Debug"); 
    // Then this 
    text = cboTimeZone.Text; 
    MessageBox.Show(text, "Debug"); 
    // then (as a safeguard) 
    if (String.IsNullOrEmpty(text)) 
    { 
     return; 
    } 
    switch (text) 
    { 
     case "EST": 
     time1.Hour = time1.Hour + 1; /* CDT hours + 1 to get EST */ 
     extTime1.Hour = extTime1.Hour + 1; 
     break; 

     case "MST": 
     time1.Hour = time1.Hour - 1; /* CDT hours - 1 to get MST */ 
     break; 

     case "PST": 
     time1.Hour = time1.Hour - 2; /* CDT hours - 2 to get PST */ 
     break; 

     default: /* CDT is the default time zone*/ 
     break; 
    } 

} 
관련 문제