2013-03-04 2 views
0

하위 폼에서 CheckBox를 토글 버튼 (checkBox.Appearance = Appearance.Button)으로 사용하고 있습니다. 사용자가 버튼을 누르면 몇 가지 기준 (예 : 범위 내의 온도)이 충족되면 측정주기가 시작됩니다. CheckBox.Checked 속성은 측정이 완료 될 때까지 true로 유지됩니다.CheckBox가 업데이트되지 않습니다.

예 : 온도가 범위를 벗어나면 경고가 나타나고 버튼이 재설정됩니다. 사이클이 제대로 끝나면 같은 일이 발생합니다. 결국이 자기 설명 함수가 호출된다 디버깅 할 때

/// <summary> 
    /// Resets the button states to false 
    /// </summary> 
    public void ResetButton() 
    { 
     checkBox_Start.Checked = false; 
    } 

지금, 나는 CheckBox_Start.Checked 속성이 거짓과 거짓 남아있는 것을 알 수있다. 하지만 UI는 실제 값을 표시하지 않습니다. 겉으로보기에는 체크 된 채로 남아 있습니다. 모든 레벨에서 새로 고침() 및 업데이트()를 시도했습니다.

누구나 아이디어가 있습니까? UI가 실제 값을 표시하지 못하게 할 수 있습니까?

+2

은 WebForms입니까? 아니면 WinForms입니까? – Freeman

+0

시도해보십시오. Application.DoEvents(); – VladL

+0

비록 귀하의 질문에 명확하지 않지만 UI가 업데이 트되지 않은 경우 해당 winforms 프로젝트, 그럼 별도의 스레드 (BackGround 작업자 프로세스)에서 '측정주기'를 시도하십시오 –

답변

0

DataGridView를 제외하고 비슷한 문제가 발견되었습니다. 내가 찾은 해결책은 컨트롤을 무효화하는 것이었다 후 다음과 같이, 그것은 다시 그려야을 요청 :

public void ResetButton() 
{ 
    checkBox_Start.Checked = false; 
    checkBox_Start.Invalidate(); 
    checkBox_Start.Update(); 
} 

가 그것을 해결되는지 확인, 그보십시오.

+0

불행히도 Checked 속성이 틀리다고해서 그렇지 않습니다. – benJima

+1

흠, 홀수. 올바른 체크 박스를 사용 하시겠습니까? 어리석은 것처럼 들리지만, 우릴 좋아합니다. 어딘가에서 treestate하도록 설정하지 않았는지 확인하십시오 (checkBox.Threestate) – RoadieRich

+0

: D 두 개의 확인란 만 있습니다. 심지어 나는 그들을 섞을 수 없을 것이다. 그리고 예. 그것은 이상합니다. – benJima

관련 문제