레이블 집합으로 컨트롤을 채 웁니다
-
21-12-2019 - |
문제
레지스트리에서 데이터를 가져온 다음 TabControl에 GroupBox를 추가하고 GroupBox에서 많은 레이블 컨트롤 (레지스트리 정보를 표시하기 위해)만큼의 데이터를 만듭니다 (키 -값 쌍) 나는 얻었습니다. 이렇게하려면이 기능을 만들었습니다.
private void AddAllControl()
{
GroupBox TestGroupBox = new GroupBox();
TestGroupBox.AutoSize = true;
TestGroupBox.Text = "valami";
TestGroupBox.Height = 500;
for (int i = 0; i < 21; i++)
{
Label TempLabel = new Label();
TempLabel.Text = i.ToString();
TempLabel.Location = new System.Drawing.Point(20 + i, 30);
TempLabel.Show();
TempLabel.Visible = true;
TempLabel.Enabled = true;
TestGroupBox.Controls.Add(TempLabel);
}
tabPage_SandBox.Controls.Add(TestGroupBox);
}
.
이 기능은 버튼을 누르면 처리됩니다.그런 다음 GroupBox가 올바르게 나타나지 만 21 레이블 대신 첫 번째 (text= 0이있는 텍스트= 0이) 레이블 만 표시됩니다.
프로그램을 디버깅하는 것을 중단하면 모든 레이블이 존재하고 모든 속성이 올바른지 확인하지만 나타나지 않습니다.
내가 눈치 채지 못한 무언가가 있어야합니다.
이제 내 질문?내가 뭘 틀렸어?
볼 수 있듯이 visible
및 enabled
속성을 모두 시도했지만 Me Solution을 가져 오지도 않습니다.
해결책
를 설정해야합니다.
TempLabel.AutoSize = true;
.
및
와 같은 위치를 조금 수정해야합니다. TempLabel.Location = new System.Drawing.Point(20 + 10 * i, 30);
.
또는 다른
와 같은 위치를 설정해야하므로 다른 아래에 레이블을 설정하고 싶습니다. TempLabel.Location = new System.Drawing.Point(20, 20+20 * i);
. 다른 팁
If your Labels are a constant size then
TestGroupBox.Controls.Add(new Label()
{
Text = i.ToString(),
Location = new Point(20 + (i*20), 30),
Size = new Size(20, 20)
});
Would do the trick
제휴하지 않습니다 StackOverflow