none
puedo cambiar todos los colores de formularios al seleccionar color en un listbox RRS feed

  • Pregunta

  • hola buenas tardes programo en vb2005

    mi pregunta es, tengo una base de datos con varios forms, quiero darle un cambio y mas que nada algo diferente,
    deceo poner un listbox con varios colores y que al momento de selecionar un color por ejemplo verde que todos los forms de mi
    proy cambien a ese color se puede hacer eso?

    solo es para ponerle crema a los cacahuates=algo vistoso
    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    martes, 12 de enero de 2010 18:40

Respuestas

  • Hola Porque en vez de hacerlo con un combo lo haces con ColorDialog: Podrias hacer algo asi:

    con este bloque de código lo pones por ejempolo en una opcion de menu o un boton, lo ejecutas, y cuando se lance le pedira al usuario que eliga un color, y este se aplicará a todos los formularios abiertos(OpenForms).
                            Dim seleccionColor As New ColorDialog()
                            If seleccionColor.ShowDialog() = Windows.Forms.DialogResult.OK Then
                                For Each frm As Form In Application.OpenForms
                                    frm.BackColor = seleccionColor.Color
                                Next
                            End If

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 21:36
    miércoles, 13 de enero de 2010 21:14
    Moderador
  • hola

    en realidad no hay mucha ciencia

    pero bueno te paso otros recursos que por ahi ayuden
    te aconsejo que lo leas en detalle y sigas los pasos y los lugares que explcia estos links

    Administrar la configuración de la aplicación

    mas puntualmente este Configuración de la aplicación

    luego analzia este toro link

    My.Settings (Objeto)

    no solo leas el link principal sino a los que este hace referncia tambien
    realzia algunas pruebas y cuantanos si has podido usar el sistema de config que proporciona vb.net

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 20:33
    jueves, 14 de enero de 2010 20:13
  • hola

    te arme un ejemplo que deje en este link

    WinForms – Cambio del color del Formulario – Usando el archivo de configuracion

    alli veras que hace justo la idea que planteo en la explicacion

    analiza el archivo app.config
    alli estan los tag de los valores que cambias

    sino has boton derecho en el proyectodel menu sua "Properties" y luego la solapa "Settings"
    es lo mismo que el app.config solo que visual

    tambien te dejoe ste otro link que seguro te interesara
    My.Settings.Save


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz viernes, 15 de enero de 2010 16:57
    jueves, 14 de enero de 2010 21:54
  • hola

    lo que quieres es que esto se realice en runtime ?

    de ser asi podrias hacer

    For Each frm As Form In Application.OpenForms

       frm.BackColor = Color.FromName(combo.SelectedText)

    Next

    por supeusto en el combo caergas los colores

    combo.Items.Add("Red")
    combo.Items.Add("Blue")

    tienes que estar en ingles si los pones en castellano cambia un poco ya que no podras usar directamente el
    Color.FromName()

    Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz martes, 12 de enero de 2010 19:09
    martes, 12 de enero de 2010 18:53
  • Umh, no esa linea tienes que ponarla donde tengas el selector de color por ejemplo

    con eso vas a recorrer todos los formularios abiertos.

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:33
    miércoles, 13 de enero de 2010 19:09
    Moderador
  • hola

    como dice jttorrecilla va en el evento del combo cuandoc ambias el item


    Private Sub combobox1_SelectedIndexChanged(...)

        For Each frm As Form In Application.OpenForms

            frm.BackColor = Color.FromName(combo.SelectedText)

        Next

    End Sub


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:33
    miércoles, 13 de enero de 2010 19:14
  • hola

    mm no se entendio mucho esa ultima pregunta

    o sea Form es el nombre de la clase de la cual heredan los formulario y frm es la instancia de cada form en la coleccion que devuelve Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:53
    miércoles, 13 de enero de 2010 20:35

  • hola

    ese tambien deberia aparecer como un item de la lista devuelta por Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:53
    miércoles, 13 de enero de 2010 20:51
  • El For each te va a recorrer todos los formularios que tengas abiertos en la aplicación y les va a cambiar el color de fondo...

    Si tienes una aplicación MDI, y los formularios los tienes declaradons con su mdiparent indicado podrias hacer lo siguiente dentro del evento de tu menu:

     Dim c As New ColorDialog
            If c.ShowDialog() = Windows.Forms.DialogResult.OK Then
                For Each f As Form In Me.MdiChildren
                    f.BackColor = c.Color

                Next
            End If
        End Sub

    dentro de MdiChildren están todos los formularios de tu aplicación que están abiertos.

    Si lo que quieres es que cualquier formulario se cargue ya con ese color, ademas de lo indicado tendrias que declarte una variable y en algun evento de carga de esos formularios cambiar la propiedad del backcolor....

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 15:00
    miércoles, 13 de enero de 2010 21:52
    Moderador
  • hola

    te lo cambia a todas las instancias de formulario que tengas abiertas ya que usas Application.OpenForms

    ahora bien si solo tienes ese form abierto lo cambiara para ese unico form

    igual creo entender a donde apuntas
    lo que quieres es que ese colo de formulario quede seteado no solo para ese formulario sino para todos los que se usen desde ese monto hacia adelante
    que ese color sea mas bien una configuracion de la aplicacion que desarrollas

    en ese caso el tema pasa por otro lago ya la idea no solo es aplciar el color a los forma activos sino tambien dejar un valor como configuracion en la aplicacion
    para que futuros formulario la tomen y usen ese mismo color

    aqui mas alla de usas la tecnica que te describimos falta un paso
    y es guardar la configuracion

    para esta tarea vas a necesitar hacer uso del  My.Settings
    Using My.Settings in Visual Basic 2005
    Application settings in VB.NET 2.0 and Visual Studio 2005

    este te permitira llevar la configuracion de la aplicacion y crar un item que guarde el valor del color seleccionado por el usuario

    entocnes en cada apertura de un nuevo form, tomaras este valor y se lo asignaras

    consejo, analiza los links de My.Settings, y realzia algunas pruebas antes de querer lograr el objetivo, si nunca antes lo has usado debes tomar un poco de practica con esta funcionalidad, luego continua son el desarrollo

    como veras el my.settings no solo define un atributo de configuracion sino que podras leerlo y grabarlo cuando el usuario lo modifica en este caso cuando cambia el valor seleccionado del combo de colores

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 15:56
    miércoles, 13 de enero de 2010 21:58
  • Mira puedes hacer algo asi:
            My.Settings.Properties.Add(New System.Configuration.SettingsProperty("Color"))
            My.Settings.Properties("Color").DefaultValue = Color.Beige //Sustiuyelo por el codigo de arriba si quieres....


    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 21:36
    jueves, 14 de enero de 2010 21:18
    Moderador

Todas las respuestas

  • hola

    lo que quieres es que esto se realice en runtime ?

    de ser asi podrias hacer

    For Each frm As Form In Application.OpenForms

       frm.BackColor = Color.FromName(combo.SelectedText)

    Next

    por supeusto en el combo caergas los colores

    combo.Items.Add("Red")
    combo.Items.Add("Blue")

    tienes que estar en ingles si los pones en castellano cambia un poco ya que no podras usar directamente el
    Color.FromName()

    Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz martes, 12 de enero de 2010 19:09
    martes, 12 de enero de 2010 18:53
  • hola amigo entonces con estas lineas puedo cambiar todos los colores de mis forms?

    esta linea la tengo k poner por cada formulario

    For Each frm As Form In Application.OpenForms


    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 19:05
  • Umh, no esa linea tienes que ponarla donde tengas el selector de color por ejemplo

    con eso vas a recorrer todos los formularios abiertos.

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:33
    miércoles, 13 de enero de 2010 19:09
    Moderador
  • hola

    como dice jttorrecilla va en el evento del combo cuandoc ambias el item


    Private Sub combobox1_SelectedIndexChanged(...)

        For Each frm As Form In Application.OpenForms

            frm.BackColor = Color.FromName(combo.SelectedText)

        Next

    End Sub


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:33
    miércoles, 13 de enero de 2010 19:14
  • el frm es mi formulario donde pongo el combo vdd osea donde esta puesto y la palabra Form hace referencia a que?
    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 20:32
  • hola

    mm no se entendio mucho esa ultima pregunta

    o sea Form es el nombre de la clase de la cual heredan los formulario y frm es la instancia de cada form en la coleccion que devuelve Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:53
    miércoles, 13 de enero de 2010 20:35
  • entonces en ningun lado va el nombre del formulario donde tengo el combo?


    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 20:47

  • hola

    ese tambien deberia aparecer como un item de la lista devuelta por Application.OpenForms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 20:53
    miércoles, 13 de enero de 2010 20:51
  • y esto

    combo.Items.Add("Red")
    combo.Items.Add("Blue")

    tambien va en el combobox1_SelectedIndexChanged
    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 20:56
  • haber mira lo puse en el combobox1_SelectedIndexChanged

    puse todo esto:

       If Me.ComboBox1.SelectedText = "1" Then
                Me.TextBox1.BackColor = Color.AliceBlue
            ElseIf Me.ComboBox1.SelectedText = "2" Then
                Me.ComboBox1.ForeColor = Color.Black
            ElseIf Me.ComboBox1.SelectedText = "3" Then
                Me.TextBox1.ForeColor = Color.BlueViolet
            ElseIf Me.ComboBox1.SelectedText = "4" Then
                Me.TextBox1.ForeColor = Color.DarkCyan
            End If

    For Each menuprin As Form In Application.OpenForms
            '    menuprin.BackColor = Color.FromName(Me.ComboBox1.SelectedText) ---Control does not support transparent background colors.
            'Nextel 1,2,3,4 los puse en los items del combo pero me da ese error

    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 21:14
  • Hola Porque en vez de hacerlo con un combo lo haces con ColorDialog: Podrias hacer algo asi:

    con este bloque de código lo pones por ejempolo en una opcion de menu o un boton, lo ejecutas, y cuando se lance le pedira al usuario que eliga un color, y este se aplicará a todos los formularios abiertos(OpenForms).
                            Dim seleccionColor As New ColorDialog()
                            If seleccionColor.ShowDialog() = Windows.Forms.DialogResult.OK Then
                                For Each frm As Form In Application.OpenForms
                                    frm.BackColor = seleccionColor.Color
                                Next
                            End If

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz miércoles, 13 de enero de 2010 21:36
    miércoles, 13 de enero de 2010 21:14
    Moderador
  •  muy bueno comentario pero algo por ejemplo tengo un formulario en el tengo un menustrip tons si pongo esa opcion en uno de sus desplegables
    me cambia el color solo de ese formulario o tambien se puede de todos los que tengo en el sistema como le ago

    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    miércoles, 13 de enero de 2010 21:39
  • El For each te va a recorrer todos los formularios que tengas abiertos en la aplicación y les va a cambiar el color de fondo...

    Si tienes una aplicación MDI, y los formularios los tienes declaradons con su mdiparent indicado podrias hacer lo siguiente dentro del evento de tu menu:

     Dim c As New ColorDialog
            If c.ShowDialog() = Windows.Forms.DialogResult.OK Then
                For Each f As Form In Me.MdiChildren
                    f.BackColor = c.Color

                Next
            End If
        End Sub

    dentro de MdiChildren están todos los formularios de tu aplicación que están abiertos.

    Si lo que quieres es que cualquier formulario se cargue ya con ese color, ademas de lo indicado tendrias que declarte una variable y en algun evento de carga de esos formularios cambiar la propiedad del backcolor....

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 15:00
    miércoles, 13 de enero de 2010 21:52
    Moderador
  • hola

    te lo cambia a todas las instancias de formulario que tengas abiertas ya que usas Application.OpenForms

    ahora bien si solo tienes ese form abierto lo cambiara para ese unico form

    igual creo entender a donde apuntas
    lo que quieres es que ese colo de formulario quede seteado no solo para ese formulario sino para todos los que se usen desde ese monto hacia adelante
    que ese color sea mas bien una configuracion de la aplicacion que desarrollas

    en ese caso el tema pasa por otro lago ya la idea no solo es aplciar el color a los forma activos sino tambien dejar un valor como configuracion en la aplicacion
    para que futuros formulario la tomen y usen ese mismo color

    aqui mas alla de usas la tecnica que te describimos falta un paso
    y es guardar la configuracion

    para esta tarea vas a necesitar hacer uso del  My.Settings
    Using My.Settings in Visual Basic 2005
    Application settings in VB.NET 2.0 and Visual Studio 2005

    este te permitira llevar la configuracion de la aplicacion y crar un item que guarde el valor del color seleccionado por el usuario

    entocnes en cada apertura de un nuevo form, tomaras este valor y se lo asignaras

    consejo, analiza los links de My.Settings, y realzia algunas pruebas antes de querer lograr el objetivo, si nunca antes lo has usado debes tomar un poco de practica con esta funcionalidad, luego continua son el desarrollo

    como veras el my.settings no solo define un atributo de configuracion sino que podras leerlo y grabarlo cuando el usuario lo modifica en este caso cuando cambia el valor seleccionado del combo de colores

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 15:56
    miércoles, 13 de enero de 2010 21:58
  • muy buenos dias amigo, mmm creo que soy muy ignorante para este my.setings la verdad entendi poco, el primer link me habla de codigo HTML creo, y no la verdad ese no entendi bien ademas se direcciona no se por que.

    el segundo me habla de entrar a las propiedades de mi proy y muestra la clase size pero no veo como la crea y el el codigo solo la aplica??

    stoy poco dsconciertado con esto tienes un ejemplo?
    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    jueves, 14 de enero de 2010 17:00
  • hola

    en realidad no hay mucha ciencia

    pero bueno te paso otros recursos que por ahi ayuden
    te aconsejo que lo leas en detalle y sigas los pasos y los lugares que explcia estos links

    Administrar la configuración de la aplicación

    mas puntualmente este Configuración de la aplicación

    luego analzia este toro link

    My.Settings (Objeto)

    no solo leas el link principal sino a los que este hace referncia tambien
    realzia algunas pruebas y cuantanos si has podido usar el sistema de config que proporciona vb.net

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 20:33
    jueves, 14 de enero de 2010 20:13
  • hola mira ya cheque este link y tambien dice lo mismo que ustedes me han recomendado pero no se aun como guardar el valor
    en una variable o algo para que me cambie el color de todos los formularios, por ejemplo paso de un altas a bajas y que el color lo cambie asi como
    tu lo mencionas este es el link
    http://translate.google.com.mx/translate?hl=es&sl=en&u=http://visualbasic.about.com/od/usingvbnet/a/appsettings.htm&ei=ZWBPS4ilGojCsQPbj9iCCA&sa=X&oi=translate&ct=result&resnum=1&ved=0CAkQ7gEwAA&prev=/search%3Fq%3Dcomo%2Busar%2Bmy.Setting%2Bvb.net%26hl%3Des
    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    jueves, 14 de enero de 2010 20:43
  • Mira puedes hacer algo asi:
            My.Settings.Properties.Add(New System.Configuration.SettingsProperty("Color"))
            My.Settings.Properties("Color").DefaultValue = Color.Beige //Sustiuyelo por el codigo de arriba si quieres....


    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    • Marcado como respuesta kalyz jueves, 14 de enero de 2010 21:36
    jueves, 14 de enero de 2010 21:18
    Moderador
  • hola amigo ya supe como este link es muy bueno. explica el codigo que tu y leandro me estuvieron diciendo y lo unico que hice para los demas forms los programe igual entrando a las propiedades de cada uno y seleccionando el color como muestran las imagenes

    http://translate.google.com.mx/translate?hl=es&sl=en&u=http://visualbasic.about.com/od/usingvbnet/a/appsettings.htm&ei=ZWBPS4ilGojCsQPbj9iCCA&sa=X&oi=translate&ct=result&resnum=1&ved=0CAkQ7gEwAA&prev=/search%3Fq%3Dcomo%2Busar%2Bmy.Setting%2Bvb.net%26hl%3Des

    Por K Vivir En Un Mundo K Nadie Kiere, Si Podemos Vivir En El Mundo K Todos Keremos
    jueves, 14 de enero de 2010 21:36
  • hola

    te arme un ejemplo que deje en este link

    WinForms – Cambio del color del Formulario – Usando el archivo de configuracion

    alli veras que hace justo la idea que planteo en la explicacion

    analiza el archivo app.config
    alli estan los tag de los valores que cambias

    sino has boton derecho en el proyectodel menu sua "Properties" y luego la solapa "Settings"
    es lo mismo que el app.config solo que visual

    tambien te dejoe ste otro link que seguro te interesara
    My.Settings.Save


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta kalyz viernes, 15 de enero de 2010 16:57
    jueves, 14 de enero de 2010 21:54