문제

문서를 편집 할 수있는 winforms 응용 프로그램이 있습니다. 각 문서는 챕터로 만들어졌으며 각 장에는 RTF 블록 모음이 있습니다. RTF 블록은 a에로드됩니다 PanelControl 사용 Dock = DockStyle.Top.

문제는 장의 총 높이가 너무 커지면 (추정> 32768 픽셀) 하단 블록이 제대로 도킹되지 않았다는 것입니다. 서로 뒤에 나타납니다. 문제를 분리하려고 할 때 나는 이것이 더 간단한 컨트롤에서도 발생한다는 것을 알았습니다. LabelControl.

내가 시도한 것은 방법입니다 Refresh(), Invalidate() 그리고 PerformLayout: 그들은 할 것이다 ~ 아니다 문제를 해결하십시오.

하다 도움은 양식을 크기를 조정하는 것입니다. 그 후 모든 컨트롤이 올바르게 배치됩니다.

누구든지 양식의 크기를 조정하지 않고 이것을 해결하는 방법을 도울 수 있습니까?

첨부 a 간단한 데모 프로젝트 그것은 문제를 보여줍니다.

screenshot

도움이 되었습니까?

해결책

위의 내 의견에서 (여기서 실제로 문제가있는 것 같습니다) :

Winforms (및 일반적으로 GDI)는 16 비트 범위를 벗어난 좌표를 사용하려고 시도하면 예측할 수 없을 정도로 행동합니다. 그것을 피하십시오. 가능한 문제의 범위에서는 예상치 못한 코드 위치에서 오버 플로 잉을 전혀 끌어 내지 못하는 것입니다.

다른 팁

이 레이아웃을 변경하기로 결정할 수 있다면, 어떤 종류의 페이지 매김 또는 RTF 블록을 메뉴로 붕괴시키고 최신을 보여주는 문서 장을 표시/편집하는 데 다른 접근 방식을 취하는 것이 좋습니다.

알다시피 .. 높이 값이 정수 16 비트 값이라는 의미입니다. 화면은 이것보다 훨씬 작습니다. 패널 높이가 높은 크기로 증가함에 따라. 스크롤 막대를 사용하면 매우 합리적이 될 것입니다. 좋은 일이 아닙니다.

크기 2x, 3x, 5x 스크롤이있는 내용은 사용자에게 사용할 수 있습니다. 그러나 최적의 경우 32x에서 최소한 (~ 32768)의 컨텐츠를 스크롤하는 (창가 최대화 된 우수한 해상도 모니터 사용) 창 크기는 매우 불편합니다.

또한, 나는 "사물"의 증가에서 "사물"을 찾는 뇌의 어려움으로 인해 사용자의 생산성이 감소 할 것이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top