I've only had a quick look and not done any testing but i would think that you'd want to handle the MouseUp event of the control(s) and check whether the mouse cursor position is within a cell of the TLP and, if it is, add it to that cell. It's up to you to decide what to do if the cell is already occupied. You might want to return the control to its original position or you might want to drop it in the next empty cell or something else.