edit ... after consulting my notes ...
MS clearly warns about using a Form that inherits from a Form with a TableLayoutPanel on it:
The TableLayoutPanel control does not support visual inheritance in the Windows Forms Designer. A TableLayoutPanel control in a derived class appears as "locked" at design time.
[
^]. Now that's a bit strange, actually, because every Control defined in a Form that appears in an inheriting Form is going to appear "locked."
I suggest you read the above MS doc page carefully and note the number of cautions, and suggestions, regarding the use of the TableLayoutPanel.
I strongly suggest you don't attempt to use the TableLayoutPanel as a substitute for a "Grid." If you need a Grid, search on CodeProject, and examine some of the interesting custom Controls written about, like Philippe Piper's
What you observe is, unfortunately, just the "way things are" in Windows Forms. A Form/UserControl/Component that inherits from another locks the Controls it inherits ... by default.
I just gave a lengthy answer to a question on the C# forum about this issue; I think it may be helpful for you: [
^]. It shows a technique for getting a reference to an inherited Control.
And, yes, there are specific problems with the TableLayoutPanel that I need to go back to my notes to describe more clearly. I will respond later today to your question. Specific problems with TableLayoutPanel include problems with AutoSize, and AutoScroll.
By the way, there's absolutely nothing "wrong," or "second class," about using the WinForms Designer to create/implement your user-interface design, and Visual Studio provides a powerful set of tools for helping you position, and align, Controls, snapping them to the "grid," etc.