문제

레지스트리에서 데이터를 가져온 다음 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이) 레이블 만 표시됩니다. 프로그램을 디버깅하는 것을 중단하면 모든 레이블이 존재하고 모든 속성이 올바른지 확인하지만 나타나지 않습니다. 내가 눈치 채지 못한 무언가가 있어야합니다. 이제 내 질문?내가 뭘 틀렸어? 볼 수 있듯이 visibleenabled 속성을 모두 시도했지만 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top