flowLayoutPanel Clear 후 다시그릴때 가로 스크롤바 질문

flowLayoutPanel을 사용해서 리스트를 그리고있는데요.
flowDirection : TopDown
AutoScroll: true
AutoSize: false
WrapContents: false
이렇게 세팅되어있고, panel에 들어가는 컨트롤은 유저컨트롤로 만든 컨트롤입니다.

아래처럼 초기에 세팅을하면 가로 스크롤바는 안생깁니다.

UserControl1 item = new UserControl1();
flowLayoutPanel.Controls.Add(item);
flowLayoutPanel.Controls[i].Width = flowLayoutPanel.Width - (flowLayoutPanel.Controls[i].Margin.Horizontal);

flowLayoutPanel.Parent = parentPanel;
flowLayoutPanel.Location = new Point(0, 0);
flowLayoutPanel.Width = flowLayoutPanel.ClientSize.Width + SystemInformation.VerticalScrollBarWidth;
flowLayoutPanel.Height = flowLayoutPanel.ClientRectangle.Height;

그런데 이 이후에 flowLayoutPanel을 Clear시키고 다시 그려보면 가로 스크롤바가 생기는데 이것을 안생기게 하고 싶은데 어떻게 해야할 지 잘 모르겠습니다… 세로 스크롤바는 생겨도 상관없습니다

flowLayoutPanel.Controls.Clear();

UserControl1 item = new UserControl1();
flowLayoutPanel.Controls.Add(item);
flowLayoutPanel.Controls[i].Width = flowLayoutPanel.Width - (flowLayoutPanel.Controls[i].Margin.Horizontal);
3개의 좋아요

자답)) 초기 세팅때 flowLayoutPanel의 Width에 세로스크롤길이를 더해놔서 다시그릴때 Width값이 더해진값으로 적용되서 계산해가지고 가로 스크롤바가 생기고 있었습니다.
flowLayoutPanel.Width = flowLayoutPanel.ClientSize.Width; 로 가로길이를 다시 초기화시키고 그려주니 원하던대로 잘 그려집니다!

5개의 좋아요