Pregunta

I tiene una clase que genera una forma y controles. Los controles varían entre los botones, controles de radio, casillas de verificación y etiquetas. La idea es crear cuidadosamente la forma con una etiqueta encima de cada control. El problema es que parece que no puede encontrar la fórmula o manera de organizar ordenadamente / espacio de ellos. Se trabaja muy bien cuando tengo cuadros de texto sólo, pero no estoy seguro de cómo manejar los controles más grandes, como las listas de casilla de verificación. Aquí está un ejemplo de cómo manejar los cuadros de texto:

            case "Text":
                TextBox tbx = new TextBox();
                tbx.Name = df.Value.Name;
                tbx.Text = (df.Value.DefValue != null) ? df.Value.DefValue : "";
                tbx.Location = new Point(lbl.Location.X, lbl.Location.Y + 20);
                f.Controls.Add(tbx);
                break;

cuenta que esto es todo en un bucle foreach. Esta es la parte que lo precede (etiqueta):

        if (i == 0)
        {
            lbl.Location = new Point(10, 10);
        }
        else
        {
            lbl.Location = new Point(10, (i * 50) + 10);
        }

Esto claramente ordena los cuadros de texto y etiquetas con un espaciamiento uniforme. ¿Alguien puede ofrecer algunos consejos sobre cómo manejar los diferentes controles? Quiero colocarlos debajo unos de otros, pero mantener al menos 10 píxeles distancia de la parte inferior de cada control a la parte superior de la siguiente etiqueta.

Gracias de antemano.

¿Fue útil?

Solución

Utilice un TableLayout . Puede echar un vistazo a cómo el diseñador lo hace en el código detrás de archivo.

En el espaciado, relleno en la propiedad "margen" de sus controles. 5 en la parte superior y 5 en la parte inferior debe hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top