2014-09-20 3 views
0

FlowLayoutPanel에 일부 사용자 정의 컨트롤이 있습니다. 각 사용자 제어에는 해당 사용자 제어 정보에 대한 레이블이 있습니다.FlowLayoutPanel : 내부 항목 값/텍스트를 변경하면 스크롤이 잘못됩니다.

FlowLayoutPanel 속성 :

AutoScroll = true 
WrapContents = false 

사용자 제어 (배경) 레이블 정보가 업데이트 될 때를 클릭하여. 하지만 FlowLayoutPanel에 많은 사용자 컨트롤이 있고 자동 스크롤 속성을 사용하는 경우 항목을 클릭하면 스크롤이 잘못됩니다. 사용자 컨트롤을 클릭 한 곳의 스크롤 막대 상단과 같습니다.

이 스크롤 문제를 해결하는 방법은 무엇입니까?


OK, 여기 데모 GIF 파일, 그것의 첫 번째 부분이 스크롤이 두 번째 파트 A를 변경하는 (항목을 클릭하여 아래 어딘가 스크롤 스틱을 보여 (값이 변화하는) 항목을 클릭하지 않고 좋은 작품 보여입니다 값).

FlowLayoutPanel problem with inner items changes

  • 나는 FlowLayoutPanel.PerformLayout()가 FlowLayoutPanel의 내부 항목에서 작동하지 않는 것을 말해야한다

    .

*** 또한 FlowLayoutPanel에서 영역을 클릭해도 문제가 발생합니다! 나는 그것을 시험하지 않았다.

+0

질문을 몇 번 읽은 후에도 여전히 어떤 일이 일어나고 있는지 잘 모르겠습니다. 좀 더 설명해 주시겠습니까? 라벨이 사용자 컨트롤에서 커지고 있습니까? 사진을 게시 할 수 있습니까? – TaW

+1

멋진 데모! 그러나 나는 재현 할 수 없다. 당신이 사용하고있는 플랫폼 (WPF 또는 Winfiorms ?!)에 대한 태그를 추가해 주시겠습니까? 초점, SelectNextControl 등으로 재미있는 일을하지 않는다고 가정합니까? – TaW

답변

0

해결!

이 코드를 사용자 정의 코드에 입력하여 솔루션을 완성했습니다.

private void ResControl_MouseDown(object sender, MouseEventArgs e) 
{ 
    this.Parent.Parent.Controls[0].Focus(); 
} 

해당 FlowLayoutPanel에 대한 포커스가 제거됩니다.

  • 폼을 캡처해야하기 때문에 코드에 Parent가 두 개 있습니다. 사용자 정의 컨트롤은 FlowLayoutPanel에 있고 FlowLayoutPanel은 폼에 있습니다.