0

アプリに vs2012 (C#) を使用しています。フォームの tabPage にラベルとテキスト ボックスを動的に追加する方法を探しています。しかし、追加するコントロールの数が 10 を超える可能性があるため、コンテナー コントロールが垂直方向ではなく水平方向にのみスクロールするように、それらを「列」に追加しようとしています。

たとえば、私は次のようなことをしようとしています:

LabelControl     LabelControl     LabelControl     LabelControl
TextboxControl   TextboxControl   TextboxControl   TextboxControl

LabelControl     LabelControl     LabelControl     LabelControl
TextboxControl   TextboxControl   TextboxControl   TextboxControl

etc.

「コンテナ」コントロールは TabPage なので、そこから高さを取得して使用する必要があることはわかっています。テキストボックスをレンダリングすることはできますが、ラベルコントロールが上にあり、次にテキストボックスが下にあることに問題があります。

ここに私がこれまでに持っているものがあります:

int height = tabPageBicycle.Height;
Point startLocation = new Point(0, 0);
int previousX = 0;
int previousY = 0;
int currentX = 0;

for (int x = 0; x < 75; x++)
{
    Label label = new Label();
    TextEdit text = new TextEdit();
    label.Text = x.ToString();
    text.Text = x.ToString();

    label.Location = new Point(currentX, previousY);
    tabPageBicycle.Controls.Add(label);

    if ((height - previousY) < text.Height)
    {
        currentX += 100;
        previousY = 0;
    }

    text.Location = new Point(currentX + text.Height + 5, previousY + 50);
    previousX = text.Location.X;
    previousY = text.Location.Y;
    tabPageBicycle.Controls.Add(text);
}

私が間違っていることについての手がかりはありますか?

4

1 に答える 1