문제

2 개의 TreeViews와 함께 Winform이 있습니다. 왼쪽 TreeView에 버튼을 클릭하여로드되는 애드 서버의 데이터가로드됩니다. 이것은 내 데이터를 가져오고 내 나무를 쌓는 내 배경 노동자를 유발합니다.

이제이 작업을 수행하는 동안 TreeView 컨트롤을 비활성화하고 애니메이션 GIF가있는 PictureBox를 표시합니다. 그래서 배경 작업자가 완료되면 TreeView를 다시 활성화하고 내 사진 상자를 숨 깁니다.

그래서 내가하고 싶은 것은 PictureBox가 TreeView의 중심에 머물러 있다는 것입니다. 두 TreeView는 분할 된 컨테이너에 있습니다. 그래서 아마도 그 패널의 경계를 가져와야할까요? 양식의 크기가 바뀌면 내 그림 박스는 TreeView의 중앙에 잘 유지됩니다.

도움이 되었습니까?

해결책

TreeView의 동일한 크기와 위치에 대한 패널을 만듭니다. 패널 에이 treeview를 추가하고 설정하십시오. Dockstyle.fill. 사진을 패널에 추가하고 앵커를 앵커 스타일.

this.panel1.Controls.Add(treeView2);
this.panel1.Controls.Add(pictureBox1);

this.treeView2.Dock = DockStyle.Fill;
this.pictureBox1.Anchor = AnchorStyles.None;

앵커 스타일 앵커 스타일 사진 상자를 패널 중앙에 보관합니다. 사진 상자를 나무 뷰 앞에 놓으십시오. 일단 처리는 그림 상자를 숨기기 만하면됩니다.

다른 팁

양식을 설정하는 방법에 대해서는 명확하지 않지만 양식 크기 조정 이벤트 또는 TreeView Resize 이벤트에 논리를 넣으려고합니다.

어느 쪽이든 크기가 조정되면 이미지를 트리 뷰를 가로 지르는 위치 = 반쯤에 이미지를 배치하고 이미지의 위로를 마이너를 뺀 다음 높이를 반복하십시오.

OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top