none
Poner el color de fondo de un botón con el número del código del color RRS feed

  • Pregunta

  • Hola a todos. Trabajo con Visual Studio 2010

    Quisiera hacer lo siguiente:

    Tengo un botón en mi formulario y quisiera cambiarle el color de fondo por uno de tonalidad azul. El código es el siguiente: #007ACC pero no se como ponerlo.

    Buscano he encontrado esta manerá pero me sale fallo dentro del código:

    Me.Guardarbtn.BackColor =System.Drawing.ColorTranslator.FromOle(&007ACC)

    El error que me da es "Se espera una expresión" y se marca el símbolo & . He probado también con el símbolo # y me sigue dando el mismo error.

    A ver si me podeis ayudar.

    Gracias de antemano.


    Saluditos, Charo

    martes, 26 de julio de 2016 15:30

Respuestas

  • Hola charoeci1,

    Cambia por esto :

     Me.Guardarbtn.BackColor = ColorTranslator.FromHtml("#007ACC")

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 26 de julio de 2016 15:58
  • "charoeci1" escribió:

    > Buscano he encontrado esta manerá pero me sale fallo dentro del código:
    >
    > Me.Guardarbtn.BackColor =System.Drawing.ColorTranslator.FromOle(&007ACC)
    >
    > El error que me da es "Se espera una expresión" y se marca el símbolo & .

    Hola:

    En Visual Basic se representan los números hexadecimales anteponiéndole los caracteres &H:

      
     Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(&H7ACC)

    Obviamente, los ceros a la izquierda del número no se tienen en cuenta.

    Pero como el método FromOle admite un valor Integer, puede que el valor hexadecimal especificado no se corresponda con el del color que tu deseas asignarle al control Button, por lo que mejor sería que utilizaras el método FromHtml para asignarle el color HTML hexadecimal como cadena alfanumérica:

      
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#007ACC")

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    martes, 26 de julio de 2016 16:03
    Moderador
  • charoeci1,

    La expresión de color "#007ACC" -que muestras- está dado en código hexadecimal HTML cuyo formato es "#RRGGBB". Dicha codificación no es la misma para Visual Basic, por tanto tomar la representación de los colores y pasarlos en el mismo orden como parámetro del método FromOle() no dará los resultados esperados. La representación hexadecimal para Visual Basic está dada como 0x00BBGGRR, donde BB representa el color azul, GG el color verde y RR el color rojo. Las opciones para representar el color que requieres pueden ser las siguientes:

    'Opción 1
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#007ACC")
    
    'Opción 2
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(&HCC7A00)
    
    
    'También es posible referirse a los componentes R, G y B
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(RGB(0, 122, 204))



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    martes, 26 de julio de 2016 17:41

Todas las respuestas

  • Hola charoeci1,

    Cambia por esto :

     Me.Guardarbtn.BackColor = ColorTranslator.FromHtml("#007ACC")

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 26 de julio de 2016 15:58
  • "charoeci1" escribió:

    > Buscano he encontrado esta manerá pero me sale fallo dentro del código:
    >
    > Me.Guardarbtn.BackColor =System.Drawing.ColorTranslator.FromOle(&007ACC)
    >
    > El error que me da es "Se espera una expresión" y se marca el símbolo & .

    Hola:

    En Visual Basic se representan los números hexadecimales anteponiéndole los caracteres &H:

      
     Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(&H7ACC)

    Obviamente, los ceros a la izquierda del número no se tienen en cuenta.

    Pero como el método FromOle admite un valor Integer, puede que el valor hexadecimal especificado no se corresponda con el del color que tu deseas asignarle al control Button, por lo que mejor sería que utilizaras el método FromHtml para asignarle el color HTML hexadecimal como cadena alfanumérica:

      
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#007ACC")

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    martes, 26 de julio de 2016 16:03
    Moderador
  • Hola Joel. Gracias por tu ayuda.

    He tenido que ponerlo así:

    Me.Guardarbtn.BackColor=System.Drawing.ColorTranslator.FromHtml("#007ACC")


    Saluditos, Charo

    martes, 26 de julio de 2016 16:49
  • charoeci1,

    La expresión de color "#007ACC" -que muestras- está dado en código hexadecimal HTML cuyo formato es "#RRGGBB". Dicha codificación no es la misma para Visual Basic, por tanto tomar la representación de los colores y pasarlos en el mismo orden como parámetro del método FromOle() no dará los resultados esperados. La representación hexadecimal para Visual Basic está dada como 0x00BBGGRR, donde BB representa el color azul, GG el color verde y RR el color rojo. Las opciones para representar el color que requieres pueden ser las siguientes:

    'Opción 1
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromHtml("#007ACC")
    
    'Opción 2
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(&HCC7A00)
    
    
    'También es posible referirse a los componentes R, G y B
    Me.Guardarbtn.BackColor = System.Drawing.ColorTranslator.FromOle(RGB(0, 122, 204))



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    martes, 26 de julio de 2016 17:41