Frage

Ich schreibe ein Programm, das Daten aus der Registrierung abruft und dann Gruppenboxen zu einem Tabcontrol hinzufügt, und in der Groupbox möchte ich so viele Label-Steuerelemente (um die Registrierungsinformationen anzuzeigen) wie viele Daten (Schlüssel-Wert-Paare) erstellen. Ich habe.Dazu habe ich diese Funktion erstellt:

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);
}

Diese Funktion wird ausgeführt, wenn eine Taste gedrückt wird.Danach wird das Gruppenfeld korrekt angezeigt, es wird jedoch nur 1 Beschriftung (mit Text = 0) anstelle von 21 Beschriftungen angezeigt.Wenn ich aufhöre, das Programm zu debuggen, sehe ich, dass alle Beschriftungen vorhanden sind und alle Eigenschaften korrekt sind, sie werden jedoch nicht angezeigt.Es muss etwas geben, das mir nicht aufgefallen ist.Und jetzt meine Frage?Was habe ich falsch gemacht?Wie Sie sehen, habe ich beides ausprobiert visible Und enabled Eigentum, aber keines von beiden bringt mir eine Lösung.

War es hilfreich?

Lösung

Du musst einstellen

  TempLabel.AutoSize = true;

Und Sie müssen den Standort ein wenig ändern

 TempLabel.Location = new System.Drawing.Point(20 + 10 * i, 30);

oder ich denke, Sie möchten die Beschriftungen untereinander haben, also müssen Sie den Ort wie folgt festlegen

 TempLabel.Location = new System.Drawing.Point(20, 20+20 * i);

Andere Tipps

Wenn Ihre Etiketten eine konstante Größe haben, dann

TestGroupBox.Controls.Add(new Label()
{
    Text = i.ToString(),
    Location = new Point(20 + (i*20), 30),
    Size = new Size(20, 20)
});

Würde den Zweck erfüllen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top