Control del separador de formularios Windows Forms

¿Dónde en VS2010 puedo encontrar un control de separador horizontal, como se puede encontrar en la configuración de Outlook (capturas de pantalla a continuación)?

https://jira.atlassian.com/secure/attachment/14933/outlook+settings.jpg http://www.keithfimreite.com/Images/OutlookSettings3.gif

Nota: se prefiere VB.NET, pero C # responde bien.

preguntado el 16 de mayo de 11 a las 19:05

3 Respuestas

A pesar de que esto ha sido respondido, encontré que lo siguiente es lo que necesito basado en parte en más suaverespuesta.

Crea un nuevo control. Edite el código para que sea el siguiente:

public partial class Line : Label
{
    public override bool AutoSize
    {
        get
        {
            return false;
        }
    }

    public override Size MaximumSize
    {
        get
        {
            return new Size(int.MaxValue, 2);
        }
    }

    public override Size MinimumSize
    {
        get
        {
            return new Size(1, 2);
        }
    }

    public override string Text
    {
        get
        {
            return "";
        }
    }

    public Line()
    {
        InitializeComponent();
        this.AutoSize = false;
        this.Height = 2;
        this.BorderStyle = BorderStyle.Fixed3D;
    }
}

reemplazar línea con el nombre de clase del control que desee. Esto colocará un separador que le permitirá cambiar el tamaño en el diseñador y deshabilita la adición de texto, cambiar el tamaño automático fuerza la altura del tamaño a 2 y el ancho a lo que desee, y deshabilita la adición de texto.

Respondido 21 Feb 12, 10:02

Si no me equivoco, es solo un control de línea, pero no creo que ese control exista más. Aquí es una solución.

label1.AutoSize = False
label1.Height = 2
label1.BorderStyle = BorderStyle.Fixed3D

contestado el 16 de mayo de 11 a las 23:05

En realidad, no está incluido en el conjunto estándar de controles (¡bastante seguro de que solía estar en el día!) Pero puede crear fácilmente el suyo o hacer trampa usando un GroupBox sin texto y una altura de 1px.

UserControl para proporcionar lo mismo: (No escrito por mí, fuente: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/0d4b986e-3ed0-4933-a15d-4b42e02005a7/)

public partial class LineSeparator:UserControl
{

    public LineSeparator()
    {
        InitializeComponent();
        this.Paint += new PaintEventHandler(LineSeparator_Paint);
        this.MaximumSize = new Size(2000, 2);
        this.MinimumSize = new Size(0, 2);
        this.Width = 350;
    }

    private void LineSeparator_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        g.DrawLine(Pens.DarkGray, new Point(0, 0), new Point(this.Width, 0));
        g.DrawLine(Pens.White, new Point(0, 1), new Point(this.Width, 1));
    }
}

contestado el 16 de mayo de 11 a las 23:05

Hace que te preguntes por qué el límite de 2000, ni siquiera es suficiente para cubrir una configuración de 2 pantallas. Me recuerda a la mala programación de Salomón. - Blindy

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.