TableLayoutPanel Control
The TableLayoutPanel control allows you to dynamically add and position new controls by programmatically placing new controls in table cells. You may do so without worrying about the new controls appearing outside the boundaries of the viewable area.