Empregue as cores do seu programa en Visual Studio

Este exemplo xurdiu a partir dunha consulta en presente artigo .

O ColorDialog control presenta unha paleta de cores tradicional, pero o certo é que o Visual Studio é moito máis agradable e mostra todas as cores por nome, tal como se definen nas propiedades do obxecto System.Drawing.

Dado o problema de que non hai control para amosar esta lista de cores que vemos como podemos constriur unha de nós mesmos.

Por exemplo, precisamos dun novo proxecto e dúas formas.

Na primeira forma un bastón só tes que chamar o Formulario 2, como se mostra na figura a continuación:

coloresNombre001

botón e do código é como segue:

 BtnColor_Click Private Sub (ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles btnColor.Click
 As New Form2 Din vForm2
 vForm2.ShowDialog ()
 End Sub

e desta forma será n botóns ListBox e dous (aceptar e cancelar) como na forma seguinte:

coloresNombre002

No caso Load do formulario establecer algunhas propiedades do ListBox e levar os nomes das cores co seguinte código:

 Form2_Load Private Sub (ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear ()
 ListBox1.BeginUpdate ()
 Para cada pi Como Reflection.PropertyInfo En GetType (Cor). GetProperties (Ou Reflection.BindingFlags.Public Reflection.BindingFlags.Static)
 ListBox1.Items.Add (pi.Name)
 Seguinte
 ListBox1.EndUpdate ()
 End Sub

Na primeira liña de carga "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" establecer que todos os elementos de control son deseñados a man e teñen a mesma altura. Este ademças, evento DrawItem desencadea un concerto pouco antes de cada elemento.

Para que o evento DrawItem de ListBox, select (en modo deseño), o ListBox1, que prema F4 para ver as propiedades, e na parte superior da caixa de Propiedades, seleccione o raio para ver o evento que o control está dispoñible , nós DrawItem e nós dun dobre clic. A imaxe a continuación ilustra como:

coloresNombre003

e este é o código de evento DrawItem

 ListBox1_DrawItem Private Sub (filtrado e obxecto, ByVal System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
 Rectángulo Din rectángulo = e.Bounds

 Se (e.State E DrawItemState.Selected) Logo
 e.Graphics.FillRectangle (SystemBrushes.Highlight, rectángulo)
 Outro
 e.Graphics.FillRectangle (Brushes.White, rectángulo)
 End If

 Din cadea = ListBox1.Items nombreColor (e.Index)

 B Din SolidBrush (Color.FromName (nombreColor))

 rectangulo.Inflate (-16, -2)
 e.Graphics.FillRectangle (b, New Rectangle (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 e.Graphics.DrawRectangle (Pens.Black, New Rectangle (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 Se (e.State E DrawItemState.Selected) Logo
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X 34, rectangulo.Y + 2)
 Outro
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X 34, rectangulo.Y + 2)
 End If
 End Sub

Agora só precisamos de programar os botóns eventosde como se mostra no seguinte código:

 BtnAceptar_Click Private Sub (ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 End Sub

 BtnCancelar_Click Private Sub (ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
 ME.Close ()
 End Sub

Ben, para probar a aplicación ... se todo foi ben, coma este:

coloresNombre004

Deixo algunhas definicións:

Graphics.FillRectangle (Método): Enche o interior dun rectángulo especificado por un par de coordenadas, unha anchura e unha altura.

Graphics.DrawRectangle (Método): Debuxe un rectángulo especificado por un par de coordenadas, unha anchura e unha altura.

Graphics.DrawString (Método): Debuxe a secuencia de texto especificado no lugar indicado e co especificado Brush e obxectos Font.

Espero que isto axude e pode usar nos seus proxectos.

11 Responses to "Usar cores do Visual Studio no seu programa"

  1. Información Bitacoras.com ...

    Taxa en Bitacoras.com: Este exemplo xurdiu a partir dunha consulta neste artigo. O control ColorDialog tresenta-nos unha paleta de cores tradicional, pero é Tru e que o Visual Studio é moito máis agradable e mostra todas as cores para o seu n .....

  2. Cristyan di:

    Exemplo moi bo, grazas.

  3. José Luís di:

    GRAN!
    É moi apreciado!

  4. Oscar Daniel di:

    ! Moi bo!
    o único que eu traballei foi o botón de cancelación.

  5. Erick di:

    falla seleccionar a cor transparente, será? ........... as outras cores funciona

    salu2

    • Eliseu di:

      é que a cor transparente non pode ser aplicado como a cor de fondo dunha forma, pero se é aplicada a outros controis.

      Grazas por comentar!

  6. gercer89 di:

    salvou a miña vida este exemplo! ... pero como eu podo ver a pantalla prpiedades no que cambiar a cor? porque permite-me ver "My.Forms.Form1.BackColor." grazas salu2

  7. Diego di:

    Ola
    Eu recibín un identificador de erro esperada exactamente. <A Se (e.State E DrawItemState. Select ed) A continuación,
    e.Graphics.FillRectangle (SystemBrushes.Highlight, rectángulo)

    Axuden-me por FA
    Graciass

  8. Henry di:

    Saúdos ...
    Estou na procura de técnicas para facer un mellor deseño dos controis que deben ser como o aeroporto, pero non teño idea nin eu podería atopar algo por favor, se vostede podería me axudar con iso de anetmano moitas grazas ...

  9. David di:

    este Vera, moitas grazas por este exemplo. Será que vou ser capaz de aplicala la ás miñas necesidades

    Grazas a partir de Mérida, Yucatán

Comentar