1

フォームとコントロールを生成するクラスがあります。コントロールは、ボタン、ラジオ コントロール、チェック ボックス、およびラベルによって異なります。アイデアは、各コントロールの上にラベルを付けてフォームをきちんと作成することです。問題は、それらをきちんと整理/配置するための公式または方法を見つけることができないように見えることです. テキスト ボックスだけの場合は問題なく動作しますが、チェック ボックス リストなどの大きなコントロールを処理する方法がわかりません。テキスト ボックスの処理方法の例を次に示します。

            case "Text":
                TextBox tbx = new TextBox();
                tbx.Name = df.Value.Name;
                tbx.Text = (df.Value.DefValue != null) ? df.Value.DefValue : "";
                tbx.Location = new Point(lbl.Location.X, lbl.Location.Y + 20);
                f.Controls.Add(tbx);
                break;

これはすべてforeachループになっていることに注意してください。これはその前の部分 (ラベル) です。

        if (i == 0)
        {
            lbl.Location = new Point(10, 10);
        }
        else
        {
            lbl.Location = new Point(10, (i * 50) + 10);
        }

これにより、テキスト ボックスとラベルが等間隔できれいに並べ替えられます。さまざまなコントロールを処理する方法についてアドバイスをくれる人はいますか? それらを互いの下に配置したいのですが、各コントロールの下部から次のラベルの上部まで少なくとも 10 ピクセルの間隔を保ちます。

前もって感謝します。

4

1 に答える 1

2

tablelayoutを使用します。デザイナーがコード ビハインド ファイルでそれを行う方法を確認できます。

間隔については、コントロールの「マージン」プロパティを入力してください。上に5つ、下に5つあれば十分です。

于 2010-06-22T08:51:00.047 に答える