Search code examples
c#winformscustom-controlsz-index

Winforms SplitterPanel, z-index of child overlap split


I am working with a SplitterPanel in winforms where on the right hand side I want a custom dropdown list control which displays a 2 columns dropdown list.

The problem is that with there being two columns I want to be able to have a larger dropdown list area than the actual dropdown, and therefore overlap the SplitterPanel if the list doesn't fit in the split area.

I have tried using .BringToFront();, however this does not work on the SplitterPanel and the control is hidden. I come from a web background where I would have used z-index for this but I am stumped with winforms. See below image of my issue.

Does anyone know how I can resolve this?

enter image description here


Solution

  • TaW's answer above helped my solve my issue. I modified it slightly for my situation where I moved the parameters into the method as I already had my checkbox control set as a property of the control and got the target by looping up the parents until I got to the top.

        private void moveCtlToTarget()
        {
            Control Target = Parent;
            while (Target.Parent != null)
                Target = Target.Parent;
    
            Point pt = CheckBox.PointToScreen(Point.Empty);
            CheckBox.Location = Target.PointToClient(pt);
            CheckBox.Parent = Target;
            CheckBox.BringToFront();
        }