el Guille, la Web del Visual Basic, C#, .NET y más...

Crear líneas 3D para usar como separación

 
Publicado el 21/Nov/2007
Actualizado el 21/Nov/2007
Autor: Guillermo 'guille' Som

Crear líneas 3D para usar como separación, pero sin usar nada extra, solo dos etiquetas, una de ellas puesta en la posición Y donde deben estar...



 

Introducción:

Pues eso... yo tengo una clase para hacer esto, pero en ocasiones si solo necesito hacer ese efecto de línea 3D de separación, pues... con unas cuantas líneas se soluciona.
Por ejemplo, para el caso de los típicos cuadros de diálogo o ventanas AcercaDe, tal como te muestro en la figura 1.

Un formulario AcercaDe con las líneas 3D
Figura 1. Un formulario AcercaDe con las líneas 3D

 

Para conseguir ese efecto puedes hacer lo siguiente, por ejemplo en el evento Form_Load, aunque yo suelo ponerlo en el constructor, justo después de llamar al método InitializeComponent.

Lo que debes hacer es poner dos etiquetas en el formulario, una llamada Linea1 que debe estar en la posición (Y) correcta, y otra etiqueta llamada Linea2 que da igual dónde esté, siempre que esté en el formulario.
El color y tamaño de las etiquetas es indiferente, ya que el código se encarga de asignarle los valores correctos y ajustarla al tamaño del formulario.
En el código que te muestro a continuación uso 4 puntos para separar las etiquetas de los bordes del formulario.

Para Visual Basic:

' Líneas 3D
Dim ColorOscuro As System.Drawing.Color = Color.FromKnownColor(KnownColor.ControlDark)
Dim ColorClaro As System.Drawing.Color = Color.FromKnownColor(KnownColor.ControlLightLight)
Const indentValue As Integer = 4
Dim mWidth As Integer = Me.DisplayRectangle.Width - (indentValue * 2)

With Linea1
    .BackColor = ColorOscuro
    .Height = 1
    .Left = indentValue
    .Width = mWidth
End With
With Linea2
    .BackColor = ColorClaro
    .Height = 1
    .Top = Linea1.Top + 1
    .Left = indentValue
    .Width = mWidth
End With

 

Para C#:

// Líneas 3D
System.Drawing.Color ColorOscuro = Color.FromKnownColor(KnownColor.ControlDark);
System.Drawing.Color ColorClaro = Color.FromKnownColor(KnownColor.ControlLightLight);
const int indentValue = 4;
int mWidth = this.DisplayRectangle.Width - (indentValue * 2);

Linea1.BackColor = ColorOscuro;
Linea1.Height = 1;
Linea1.Left = indentValue;
Linea1.Width = mWidth;
Linea2.BackColor = ColorClaro;
Linea2.Height = 1;
Linea2.Top = Linea1.Top + 1;
Linea2.Left = indentValue;
Linea2.Width = mWidth;

 

Espero que te sea de utilidad.

Nos vemos.
Guillermo

Nota:

Usa estos links para ver el código de la clase cLine3DEx:

-El código para Visual Basic .NET
-El código para Visual C#
-El código para Visual Basic 6.0

 


Espacios de nombres usados en el código de este artículo:

System.Windows.Forms
System.Drawing
 


Código de ejemplo (comprimido):

No hay nada para descargar, todo el código está en el artículo.


 


La fecha/hora en el servidor es: 21/11/2024 13:48:17

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024