2016-05-29 3 views
0

Когда я делаю это в виде нагрузкиC# программно добавить элементы управления рядом?

TextBox tb1 = new TextBox(); 
    TextBox tb2 = new TextBox(); 

    this.Controls.Add(tb1); 
    this.Controls.Add(tb2); 

Он кладет текстовое поле над другим (не вертикально или горизонтально, но прикрывая друг друга), которые не то, что я хочу.

Я мог бы вручную попытаться позиционировать их программно, но есть ли способ, которым каждый элемент управления может появиться рядом, когда я их добавлю?

+0

Смотрите мое объявление для добавления кнопок. Вам нужно установить левые и верхние свойства: http://stackoverflow.com/questions/37373302/how-to-create-dynamic-row-and-columns/37373407#37373407 – jdweng

ответ

2

Вы можете использовать FlowLayoutPanel.
Вот небольшой пример кода, который можно проверить с помощью LINQPad

Form f = new Form(); 
FlowLayoutPanel flp = new FlowLayoutPanel(); 
flp.Dock = DockStyle.Fill; 
flp.FlowDirection = FlowDirection.LeftToRight; 
f.Controls.Add(flp); 
TextBox t1 = new TextBox(); 
flp.Controls.Add(t1); 
TextBox t2 = new TextBox(); 
flp.Controls.Add(t2); 
f.Show(); 
+0

довольно хорошо, поэтому с точки зрения того, чем в противном случае, я вижу, что в пределах нагрузки формы это 4 строки, а затем остальные 4 строки, похожие на то, что у меня было (но добавление к панели макета потока). http://pastebin.com/raw/5qSc2pEK – barlop

+0

@barlop вы можете просто использовать его в дизайнере без кода. Существует также «TableLayoutPanel» – Slai

Смежные вопросы