¿Cómo centrar un control en Windows form C# .Net?

Para centrar un control cualquiera (Textbox, ComboBox, DataGridView ETC) que se encuentra en otro control por ejemplo un panel o un form, vamos a recurrir a un poco de matemáticas.

A continuación muestro con una función como es posible centrar un control respecto a su padre.


 public class ControlUtils
    {
        public static void centraX(Control padre, Control hijo)
        {
            int x = 0;

            //un poco de matematicas, restando los anchos y dividiendo entre 2
            x = (padre.Width/2)-(hijo.Width/2);

            //asignamos la nueva ubicación
            hijo.Location = new System.Drawing.Point(x,hijo.Location.Y);
        }
    }

Recuerda que todos los controles de Windows form heredan de la clase Control.

Para utilizarla sería de la siguiente manera:


//Suponiendo que es un textbox que se encuentra en un panel
ControlUtils.centraX(txtTextBox,panelContenedor);