2013-04-12 3 views
1

저는 monthcalendar를 수정하려고하지만 폼에 사용자 정의 컨트롤을 추가하기 전에 VS가 멈 춥니 다. 문제는 무한 루프에 있지만 오류를 찾을 수 없습니다. 제발 도와주세요MonthCalendar에 대한 UserControl

private void SetDayBoxSize() 
{ 
    int bottom = this.Height; 

    while (HitTest(1, dayTop).HitArea != HitArea.Date && 
     HitTest(1, dayTop).HitArea != HitArea.PrevMonthDate) dayTop++; 

    while (HitTest(1, bottom).HitArea != HitArea.Date && 
    HitTest(1, bottom).HitArea != HitArea.NextMonthDate) bottom--; 

    dayBox = new Rectangle(); 
    dayBox.Size = new Size(this.Width/7, (bottom - dayTop)/6); 
} 
+0

우리는 그러나 hitTest 코드를 볼 필요 해요 어디에서'dayTop'와' bottom'은'while'을 끝내기 위해 정확하게 계산되지 않습니다. 아마도 한 사람이 올라 가기 때문에 다른 한 사람은 추락 할 수 있습니다. – krillgar

+0

@krillgar 이것은 [표준 방법]입니다 (http://msdn.microsoft.com/ru-ru/library/aa335429(v=vs.71).aspx) – duprass

+0

저는 여러분이 dayTop과 bottom 값을보아야한다고 생각합니다. 무슨 일이야. 그리고 while 루프를 사용하여 크기를 설정하는 것은 이상하게 보입니다. – aliassce

답변

0

당신은 문제를 해결하기 위해 아래의 코드를 사용할 수 있습니다 : 그것은 가장 가능성이 뭔가 이후,

private void SetDayBoxSize() 
{ 
    int bottom = this.Height; 

    while (HitTest(25, dayTop).HitArea != HitArea.Date && 
     HitTest(25, dayTop).HitArea != HitArea.PrevMonthDate) dayTop++; 

    while (HitTest(25, bottom).HitArea != HitArea.Date && 
    HitTest(25, bottom).HitArea != HitArea.NextMonthDate) bottom--; 

    dayBox = new Rectangle(); 
    dayBox.Size = new Size(this.Width/7, (bottom - dayTop)/6); 
}