제목에 모두 나와 있습니다. 실제로 레이블을 의사 진행률 표시 줄로 사용하고 있으므로 파란색 배경색이 단색이고 텍스트가없고 타이머 틱마다 너비가 커집니다. 이것은 하나의 괴짜 경우를 제외하고는 훌륭합니다 :1 분 타이머 틱에서 Winforms 레이블 업데이트. > 1 분 동안 최소화, 복원시 레이블이 다시 칠하지 않음
나는 하루 종일 창을 떠날 경우 괜찮습니다.
1 분 미만으로 최소화하고 복원하면 괜찮습니다.
1 분 이상 (진드기가 실제로 터지기 전까지 만) 최소화 한 다음 창을 복원하면 레이블이 다시 그려지지 않습니다. 즉, 창을 복원 할 때 틱 중에 동적으로 업데이트되지 않는 다른 레이블이 표시되지만 동적으로 업데이트되는 특수 레이블은 다시 그려지지 않습니다 (파란색으로 예상되는 픽셀은 창 배경색, 매우 밝은 회색). 예. 복원 된 창이 다음 틱까지 표시되면 레이블이 예상대로 파란색으로 다시 표시됩니다. 창은 잠겨 있지 않습니다 - 입력에 응답합니다. Windows.Forms.Timer를 폼에 끌어다 놓고 System.Timers.Timer 코드를 사용하지 않습니다.
그래서 사용자 오류 또는 OS/.NET 프레임 워크 버그?
편집 1 : 아래의 답변 1에 따라 다른 레이블의 너비를 읽으려고 시도하면 문제가 발생합니다. 윈도우의 최소화 된 상태가 라벨 폭을 읽는데 영향을주는 이유는 무엇입니까?
문제를 재현하는 코드를 게시 할 수 있습니까? –
빠른 해결 방법으로 최소화 및 복원시 타이머를 비활성화하고 최대화 할 수 있습니다. 그것은 조금 쓰레기이고, 이유를 고치려고 노력하는 것이 낫겠지 만, 우리는 당신을 위해 더 많은 정보가 필요합니다. ... – Ian
1 분이 경과 할 때를 제외하고 올바르게 작동한다고 말합니다. 문제는 코드가 올바르게 작동하지 않으며 다른 경우에 작동한다는 것입니다. 운에 의해 오류를 발견했습니다! –