인프런 커뮤니티 질문&답변

rine889님의 프로필 이미지
rine889

작성한 질문수

[C#/.NET 8.0]어서와, WinForm은 처음이지?

Data 입력 UI Design (1)

TableLayoutPanel 렉

해결된 질문

작성

·

260

·

수정됨

0

12:30 지점에서 16행의 테이블 레이아웃을 만들게 되면, 이후 해당 레이아웃을 조작하기 위해 클릭할 때마다 깜빡거리면서 렉이 발생합니다.

렉이 발생하는 시점은 도구상자에서 드래그하여 해당 UI를 추가한 직후부터 입니다.

 

시도해본 것

  1. 저장 후 VS 재실행

  2. VS 업데이트

  3. 해당 테이블 레이아웃 삭제 후 다시 생성.

 

현재 vs 버전과 ReaLTaiizor 버전은 아래와 같습니다.

Visual Studio Community 2022 : 17.9.4v

ReaLTaiizor : 3.8.0.2v

 

해당 레이아웃이 클릭된 상태를 벗어나면 렉이 풀립니다. 또한, 프로그램을 실행해도 렉이 발생하지 않습니다. 개발 환경에서 레이아웃을 클릭할 때만 계속 깜빡거리며 문제가 발생합니다. 😭😭

 

++ 문제 발생하는 시점이 강의 10:30 지점에서 테이블 레이아웃의 Dock 설정을 Fill로 바꿀 때 부터 발생하는 것으로 확인했습니다. 해당 레이아웃의 경계가 부모(tabPage2)의 경계에 근접하면 렉이 발생하는 것으로 확인했습니다.

+++ 해결방법

부모의 Padding값이 기존 3이었습니다. 이를 10으로 수정하고 내부에 들어가는 테이블 레이아웃의 Dock 설정을 Fill로 설정하니 정상적으로 작동했습니다.

++++ 왜 Padding 3일 때는 렉이 발생하고, Padding값이 10일 때는 발생하지 않는지 궁금합니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Padding 값이 3일 때 렉이 발생하고 10일 때 렉이 발생하지 않는 것은 아마도 여백의 크기가 Windows Forms 디자이너에서의 렌더링 처리 방식에 영향을 미쳤을 가능성이 있습니다. Padding이 너무 작으면 컨트롤의 경계가 가까워지고, 이는 디자이너가 경계를 계산하고 처리할 때 부하를 많이 주어 성능 저하로 이어질 수 있습니다. 반면에 더 큰 여백을 두면 컨트롤 사이의 공간이 넉넉해져 렌더링이 더 용이하게 진행될 수 있습니다.

또한, 테이블 레이아웃의 Dock 설정을 Fill로 할 경우, 일반적으로 부모 컨트롤의 크기 변경 시 자식 컨트롤의 크기도 재계산되어야 합니다. 부모 컨트롤의 Padding 값이 적은 경우, 이 재계산 과정에서 더 많은 계산이 필요할 수 있고, 이는 렉으로 체감될 수 있습니다.

개발 환경에서 렉이 발생하는 정확한 원인을 파악하려면 관련 성능 저하가 발생하는 상황을 자세히 분석해보고, Visual Studio의 성능 프로파일러를 사용하여 디자인 시 발생하는 구체적인 성능 이슈를 확인해볼 필요가 있습니다.

따라서, 사용하고 계신 Visual Studio의 Performance Profiler 도구를 통해 렌더링 프로세스에서 무엇이 성능 저하를 야기하는지 분석하는 것이 좋습니다. 또한, 해당 컨트롤과 관련하여 Visual Studio의 업데이트 혹은 ReaLTaiizor 라이브러리의 버그 리포트가 없는지 확인해볼 수도 있습니다.

rine889님의 프로필 이미지
rine889

작성한 질문수

질문하기