내 응용 프로그램에서 나는 많은 컨트롤 (label, textbox, domainupdown)을 좋은 순서로 배치해야했습니다. 그래서 나는 중첩 된 TableLayoutPanel
을 사용했다. 문제는 현재이 양식이 대부분의 이벤트에 매우 느리게 반응한다는 것입니다 (크기 조정, 최대화, 최소화 및 ...) 테이블 내의 컨트롤이 크기가 조정되고 새로운 크기의 양식으로 다시 그려지기까지 최대 5 초가 걸립니다.TableLayoutPanel은 이벤트에 매우 느리게 응답합니다.
나는 지금 내 눈에 손가락을 넣고있다! 이 형식이 집에있는 PC (i7 @ 4GHz와 좋은 그래픽 카드)에서 느린 경우 직장에서 오래된 P4 컴퓨터를 어떻게 사용해야합니까?
나는 아래 코드를 사용하려고 시도했지만 심지어 더 느려지지 않는다면 절대적으로 아무것도하지 않는다!
private void FilterForm_ResizeBegin(object sender, EventArgs e)
{
foreach(TableLayoutPanel tlp in panelFilters.Controls)
{
if(tlp != null)
{
tlp.SuspendLayout();
}
}
}
private void FilterForm_ResizeEnd(object sender, EventArgs e)
{
foreach (TableLayoutPanel tlp in panelFilters.Controls)
{
if (tlp != null)
{
tlp.ResumeLayout();
}
}
}
tablelayoutpanel 빠르게 작업 할 수있는 트릭이 있으면 알려주세요 ... 또는 누워 더 나은 방법을 알고있는 경우에 대한 백 컨트롤의 잘 정렬하십시오.
이 문제의 궁극적 인 해결 방법은 다음과 같습니다. – LarsTech
그것은 이상적 일 것입니다 ...하지만 당신은 정말로 그 컨트롤이 필요한 순간이 있습니다! –
컨트롤을 제한하는 방법이 있습니다. 때로는 레이블을 제거하고 페인트 이벤트에서 텍스트를 그릴 수 있습니다. 어쩌면 같은 문제일지도 모른다고 생각하기 때문에 [이 답변] (http://stackoverflow.com/a/8930446/719186)을 고려해보십시오. BTW, 당신은 아마 당신처럼 컨트롤을 통해 반복하지 않아도 그냥'panelFilters.SuspendLayout();'를 사용하여 무슨 일이 일어 나는지보십시오. – LarsTech