Foros del Web » Programación para mayores de 30 ;) » .NET »

1 de 4 (WinForm): cambiar la propiedad FlatStyle de todos los controles

Estas en el tema de 1 de 4 (WinForm): cambiar la propiedad FlatStyle de todos los controles en el foro de .NET en Foros del Web. Aquí empiezo una serie de preguntas que he preferido no juntarlas. De esta manera, les será más fácil encontrarlas en el buscador a personas que ...
  #1 (permalink)  
Antiguo 20/10/2004, 12:43
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
1 de 4 (WinForm): cambiar la propiedad FlatStyle de todos los controles

Aquí empiezo una serie de preguntas que he preferido no juntarlas. De esta manera, les será más fácil encontrarlas en el buscador a personas que tengan las mismas dudas. Además no tienen nada que ver una con otra.

En fin, 1 de 4:

Me gustaría poder cambiar la propiedad FlatStyle de todos los controles que la tengan en tiempo de ejecución. Ya tenía el formulario hecho con muchos controles y pensé en ponerlos al estilo de Windows XP. Pero para eso tenía que cambiar FlatStyle de Standard a System uno por uno en el diseñador y era un poco tedioso.

Supongo que habrá una colección que recoja todos los controles del formulario de manera que con un bucle, por ejemplo, se les puedan cambiar las propiedades.

¿Se puede?

Un saludo y gracias.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 20/10/2004, 14:48
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Puedes hacer ésto en tu page_load

Cita:
For Each c As Control In Me.Controls
Dim sType As String = c.GetType().Name
Select Case sType
Case "Button"
Dim btn As Button = CType(c, Button)
btn.FlatStyle = FlatStyle.Flat

Case "TextBox"
Dim txt As TextBox = CType(c, TextBox)
txt.BorderStyle = BorderStyle.FixedSingle

Case "ComboBox"

case ....

End Select

Next
Con ello puedes hacer que afecte a los controles deseados, (textbox, button, etc..)

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 20/10/2004, 15:56
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Muchas gracias, RootK, esto me vale. Pero ¿se podría hacer algo así?

Dim control As c.GetType().Name = CType(c, c.GetType().Name)
control.FlatStyle = FlatStyle.Flat

De manera que sea para todos los controles y no sólo para los seleccionados con Select case. A lo mejor haría falta una función como eval() que, por cierto, se ha comentado en otro tema.

Muchas gracias de nuevo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 20/10/2004, 16:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Pero ¿se podría hacer algo así?

Si se puede, solo que algunos controles no tienen la propiedad FlatStyle, como por ejemplo un textbox, listbox, etc, ya que tienen la propiedad BorderStyle, es por eso que los había manejado con Case, pero todo depende de como lo implementes.

Salu2
  #5 (permalink)  
Antiguo 20/10/2004, 17:07
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Y si no tienen esa propiedad, supongo que dará error ¿no? En ese caso se podría arreglar con un condicional:

If control.FlatStyle Then
control.FlatStyle = ....
End If
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:32.