On a test project, we managed to find out that this is a side effect of using the ColumnSpan property> 1. For example, there is a table 2X2. In cells [0,0] and [0,1] there are two Label . ColumnSpan both Label is 1 - everything is fine. As soon as we set ColumnSpan = 2 for the first Label in the cell [0,0], the second Label will automatically move to the nearest available cell with the coordinates [1,0], BUT, its initial coordinates will be indicated in the properties.
Further more. If the next cells are occupied, then all of them will be shifted one by one to the right, and as soon as the space to the right ends, the last cells will be pushed to the beginning of the next line. And so on all filled rows, if there are not enough rows, the missing rows will be added to the end of the table.
If you set the ColumnSpan > 1 property in the last column, it will automatically move to the next line. And if after that you place a new control in the vacant cell, then you will have 2 controls with the same coordinates on the grid.
RowSpan has a similar side effect, only it is less painful, because the column simply moves down adding the missing rows to the table.
Thus, it turns out that the coordinates of the control in the parent grid are very weakly related to its real position.
Honestly, I was unpleasantly surprised by such non-obvious behavior, but nothing remains to be noted but to take notes and use TableLayoutPanel with care.
Labelproperty correctly defines theParentproperty and they belong to the grid? - rdorn==tlpEditis 4percolSpan, from the shaded fragment of the table you can see that some cells use column combining, maybe a side effect is rdorn