Is it just me or does the TableLayoutPanel not really help all that much?
First, let me start by telling you what I thought I was going to get. You know when you hit a nice well-formed document on an HTML page and all of the labels are off to the left and all of the textboxes are off to the right? Well, I really really like that. Everything looks clean. There are so many places that you'd like the same thing, I guess I'd call it the FormLayoutPanel, and it basically comprises a two column multiple row table, with the possibility of having a draggable sizer bar in the middle, or at least having the right side column auto-size while the left side stays the same (usually your labels don't need more space).
That is what I thought the tabular layout system was going to do. Turns out it doesn't quite do that. So what does it do? Well, you throw it down on the form and it lets you set a number of rows and a number of columns. These show up as *snap-lines* so you can see the bounds of the panel. Now, the panel is just that, a panel, so it shows up as a normal control and you can set the Dock so that it fills your form. Now you drag and drop your controls onto the form. I started with labels. What do they do? Well, the AutoSize = true and snap to the upper left of their container. Damn, I figured they'd auto-dock to fill, and turn that crappy auto-size off. So now I have to AutoSize = false all of them, and Dock = DockStyle.Fill. Jeez, I have to actually WORK!
The same goes for the stupid text-boxes, which don't default to Multiline and Dock = DockStyle.Fill. Jeez, more WORK! Okay, so I'm done doing that, and I run the thing and it doesn't look that bad. However, I don't get my drag-lines to reformat the table when the form is running. I guess that isn't too awfully bad, but it would be nice to allow the user to better customize their experience. Setting my column styles up so the right hand side auto-resizes when the form does actually works, so I'm pretty stoked about that. They seem to be so close to something really cool, just not quite there. What I'd like to see:
- Intelligent control defaults when they get put into the different layout controls
- If possible, give me a FormLayoutPanel, else I'll have to make one, that allows for only two columns, and have it pre-prop the label/textboxes for me even. That would be stellar, because it solves a common programming task.
- Give the Tabular Layout the ability to resize while the application is running.
- Allow me to drag/drop controls between layout positions. Right now, once you lay out your control, you have to set properties to move it around. It isn't letting me drag, so maybe this is an early revision of the designer. Just give me the drag/drop support and I'll be much happier.
Overall a great job on this control, and I love the new LayoutEngine design. I'll definitely be making my own layout engines for various common layouts that I tend to play with. I like the new extender property feature set for judging where the controls go, rather than relying on the order they are added to the controls collection. IMHO, relying on the order in which controls were added was extremely flaky and one of the primary failures in the first Windows Forms release.