private static TableLayoutPanelCellPosition CalculateDropCellPosition(Point coordsOnTableLayoutPanel,
TableLayoutPanel targetTableLayoutPanel)
{
var cellPosition = new TableLayoutPanelCellPosition();
for (var rowNumber = 0; rowNumber < targetTableLayoutPanel.RowCount; rowNumber++)
{
if (targetTableLayoutPanel.RowStyles[rowNumber].SizeType == SizeType.Percent)
{
if (IsYCoordinateOverRow(coordsOnTableLayoutPanel.Y, rowNumber,
targetTableLayoutPanel.RowStyles[rowNumber].Height, targetTableLayoutPanel.Height))
{
cellPosition.Row = rowNumber;
break;
}
}
}
for (var columNumber = 0; columNumber < targetTableLayoutPanel.ColumnCount; columNumber++)
{
if (targetTableLayoutPanel.ColumnStyles[columNumber].SizeType == SizeType.Percent)
{
if (IsXCoordinateOverColumn(coordsOnTableLayoutPanel.X, columNumber,
targetTableLayoutPanel.ColumnStyles[columNumber].Width, targetTableLayoutPanel.Width))
{
cellPosition.Column = columNumber;
break;
}
}
}
return cellPosition;
}