ラベルのセットでコントロールを入力します
-
21-12-2019 - |
質問
レジストリからデータを取得してから、グループボックスを追加してから、グループボックスを追加し、グループボックスに、(レジストリ情報を表示するには)多くのデータ(キー - )を作成したい(値のペア)私が得た。 これを行うにはこの機能を作りました:
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が正しく表示されますが、1ラベルの代わりに1ラベル(TEXT= 0)が21ラベルの代わりに表示されます。
プログラムのデバッグを停止したとき、すべてのラベルが存在すると表示され、すべてのプロパティは正しいですが、表示されません。
私が気づかなかったことがあることがあるはずです。
そして今私の質問?私は何が間違っていましたか?
ご覧のとおり、visible
とenabled
プロパティの両方が試しましたが、どちらも私を解決していません。
解決
を設定する必要があります
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