나는 WinForms를 가지고 놀고 있으며 테두리가있는 레이블을 많이 추가하여 일종의 그리드를 만들고 싶습니다. 이제 라벨을 추가하는 것만으로도 충분합니다.WinForm에 많은 라벨 추가하기
for (int i = 0; i < 60; i++)
{
for (int j = 0; j < 60; j++)
{
var label = new Label();
label.BorderStyle = BorderStyle.FixedSingle;
label.SetBounds(i * 10, j * 10, 10, 10);
this.Controls.Add(label);
}
}
하지만 실제로는 정말 느립니다. 나는 각 사각형이 개별적으로 그려지는 것을 거의 볼 수있다. Control의 배열을 만들고 Controls.AddRange()를 사용하여 추가 할 때도 마찬가지입니다.
이제는 3600 개의 컨트롤을 그리는 동안 약간 느린 것으로 상상할 수 있지만 더 나은 방법이 있다고 생각합니다. Control.AddRange() 문을 실행하면 Stopwatch에서 약 1600ms 걸린다 고합니다. 실제 그림은 조금 더 오래 걸리는 것처럼 보입니다.
이 문제를 해결하고 많은 종류의 컨트롤을 사용하는 응용 프로그램을 신속하고 신속하게 처리 할 수있는 방법이 있습니까?
일종의, 나는 실제로 어떤 종류의 미로를 만들고 A *를 사용하여 2 점에서 최단 경로를 찾으려고합니다. 하지만 Label 클래스에서 파생되어 OnPaint를 재정의 할 수 있다고 생각합니다. 어디 보자 :) – fuaaark