Как я могу упорядоченно создавать элементы управления под друг друга? - PullRequest
1 голос
/ 22 июня 2010

У меня есть класс, который генерирует форму и элементы управления.Элементы управления различаются между кнопками, элементами управления радио, флажками и метками.Идея состоит в том, чтобы аккуратно создать форму с меткой над каждым элементом управления.Проблема в том, что я не могу найти формулу или способ аккуратно организовать / разместить их.Он отлично работает, когда у меня есть только текстовые поля, но я не уверен, как обращаться с большими элементами управления, такими как списки флажков.Вот пример того, как я работаю с текстовыми полями:

            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 пикселей от нижней части каждого элемента управления до верхней части следующей метки.

Заранее спасибо.

1 Ответ

2 голосов
/ 22 июня 2010

Используйте tablelayout .Вы можете взглянуть на то, как дизайнер делает это в коде файла.

Для интервала заполните свойство «margin» ваших элементов управления.5 сверху и 5 снизу должны это сделать.

...