Hola, o hi en inglish, mostrare un ejemplo de como cambiar el color de los menuStrip en VB.NET, ustedes haran la conversion a otros lenguajes, recuerden que esto se puede hacer en cualquier lenguaje aderido a la CLS (Common Languege Specification), no se si lo escribi bien, pero es la Especificacion comun del lenguaje, esto hace que todos los lenguajes de .net tengan soporte para las mismas librerias y “casi”, se logren los mismos resultados con cualesquiera lenguaje que se trabaje, siempre y cuando esten bajo la plataforma .NET.
Bien a lo que nos convoca:
1) Paso 1; Deberemos crear una clase de nombre (lo que quieran es su programa) Colores, como? asi:
Public Class Colores
End Class
2) Paso 2; Ahora heredaremos la clase que trae .NET llamada “ProfessionalColorTable”, asi;
Public Class Colores
Inherits ProfessionalColorTable
End Class
3) Paso 3; Sobreescribiremos las propiedades que contiene la clase (o como dice .NET “Overrides”) y que establecen el color o los colores de los controles, se preguntaran y que a controles les puedes cambiar el color??, mas adelante, ahora sigamos;
Public Class Colores
Inherits ProfessionalColorTable
Public Overrides ReadOnly Property ButtonCheckedGradientBegin() As System.Drawing.Color
Get
Return Color.AliceBlue
End Get
End Property
End Class
Como veran la propiedad ButtonCheckedGradientBegin es sobrescrivida, y es establecida a un color pasado en return, al momento de escribir property, veran como la super duper ayuda de MICROSOFT VISUAL STUDIO .NET 2005, o la version que tengan, les mostrara la lista completa que las propiedades que pueden modificar a su gusto, pero?? y cual corresponde a que parte del control??, esto talvez les ayudara:
| Nombre | Descripción | |
| ButtonCheckedGradientBegin | Obtiene el color de inicio del degradado utilizado cuando se activa el botón. | |
| ButtonCheckedGradientEnd | Obtiene el color final del degradado utilizado cuando se activa el botón. | |
| ButtonCheckedGradientMiddle | Obtiene el color medio del degradado utilizado cuando se activa el botón. | |
| ButtonCheckedHighlight | Obtiene el color sólido utilizado cuando se activa el botón. | |
| ButtonCheckedHighlightBorder | Obtiene el color de borde que se va a utilizar con ButtonCheckedHighlight. | |
| ButtonPressedBorder | Obtiene el color de borde que se va a utilizar con los colores ButtonPressedGradientBegin, ButtonPressedGradientMiddle y ButtonPressedGradientEnd. | |
| ButtonPressedGradientBegin | Obtiene el color de inicio del degradado utilizado cuando se presiona el botón. | |
| ButtonPressedGradientEnd | Obtiene el color final del degradado utilizado cuando se presiona el botón. | |
| ButtonPressedGradientMiddle | Obtiene el color medio del degradado utilizado cuando se presiona el botón. | |
| ButtonPressedHighlight | Obtiene el color sólido utilizado cuando se presiona el botón. | |
| ButtonPressedHighlightBorder | Obtiene el color de borde que se va a utilizar con ButtonPressedHighlight. | |
| ButtonSelectedBorder | Obtiene el color de borde que se va a utilizar con los colores ButtonSelectedGradientBegin, ButtonSelectedGradientMiddle y ButtonSelectedGradientEnd. | |
| ButtonSelectedGradientBegin | Obtiene el color de inicio del degradado utilizado cuando se selecciona el botón. | |
| ButtonSelectedGradientEnd | Obtiene el color final del degradado utilizado cuando se selecciona el botón. | |
| ButtonSelectedGradientMiddle | Obtiene el color medio del degradado utilizado cuando se selecciona el botón. | |
| ButtonSelectedHighlight | Obtiene el color sólido utilizado cuando se selecciona el botón. | |
| ButtonSelectedHighlightBorder | Obtiene el color de borde que se va a utilizar con ButtonSelectedHighlight. | |
| CheckBackground | Obtiene el color sólido que se utilizará cuando se active el botón y se utilicen los degradados. | |
| CheckPressedBackground | Obtiene el color sólido que se utilizará cuando se active y seleccione el botón y se utilicen los degradados. | |
| CheckSelectedBackground | Obtiene el color sólido que se utilizará cuando se active y seleccione el botón y se utilicen los degradados. | |
| GripDark | Obtiene el color que se va a utilizar para los efectos de sombra del control (controlador de movimiento). | |
| GripLight | Obtiene el color que se va a utilizar para los efectos de resaltado del control (controlador de movimiento). | |
| ImageMarginGradientBegin | Obtiene el color de inicio del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu. | |
| ImageMarginGradientEnd | Obtiene el color final del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu. | |
| ImageMarginGradientMiddle | Obtiene el color medio del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu. | |
| ImageMarginRevealedGradientBegin | Obtiene el color de inicio del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu cuando se revela un elemento. | |
| ImageMarginRevealedGradientEnd | Obtiene el color final del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu cuando se revela un elemento. | |
| ImageMarginRevealedGradientMiddle | Obtiene el color medio del degradado utilizado en el margen de la imagen de un ToolStripDropDownMenu cuando se revela un elemento. | |
| MenuBorder | Obtiene el color que es el color de borde que se va a utilizar en MenuStrip. | |
| MenuItemBorder | Obtiene el color de borde que se va a utilizar con ToolStripMenuItem. | |
| MenuItemPressedGradientBegin | Obtiene el color de inicio del degradado utilizado cuando se presiona un ToolStripMenuItem de nivel superior. | |
| MenuItemPressedGradientEnd | Obtiene el color final del degradado utilizado cuando se presiona un ToolStripMenuItem de nivel superior. | |
| MenuItemPressedGradientMiddle | Obtiene el color medio del degradado utilizado cuando se presiona un ToolStripMenuItem de nivel superior. | |
| MenuItemSelected | Obtiene el color sólido que se va a utilizar cuando se seleccione un ToolStripMenuItem distinto del ToolStripMenuItem de nivel superior. | |
| MenuItemSelectedGradientBegin | Obtiene el color de inicio del degradado utilizado cuando se selecciona el ToolStripMenuItem. | |
| MenuItemSelectedGradientEnd | Obtiene el color final del degradado utilizado cuando se selecciona el ToolStripMenuItem. | |
| MenuStripGradientBegin | Obtiene el color de inicio del degradado utilizado en el control MenuStrip. | |
| MenuStripGradientEnd | Obtiene el color final del degradado utilizado en el control MenuStrip. | |
| OverflowButtonGradientBegin | Obtiene el color de inicio del degradado utilizado en el control ToolStripOverflowButton. | |
| OverflowButtonGradientEnd | Obtiene el color final del degradado utilizado en el control ToolStripOverflowButton. | |
| OverflowButtonGradientMiddle | Obtiene el color medio del degradado utilizado en el control ToolStripOverflowButton. | |
| RaftingContainerGradientBegin | Obtiene el color de inicio del degradado utilizado en el control ToolStripContainer. | |
| RaftingContainerGradientEnd | Obtiene el color final del degradado utilizado en el control ToolStripContainer. | |
| SeparatorDark | Obtiene el color que se va a utilizar para los efectos de sombra en el ToolStripSeparator. | |
| SeparatorLight | Obtiene el color que se va a utilizar para los efectos de resaltado en el ToolStripSeparator. | |
| StatusStripGradientBegin | Obtiene el color de inicio del degradado utilizado en el control StatusStrip. | |
| StatusStripGradientEnd | Obtiene el color final del degradado utilizado en el control StatusStrip. | |
| ToolStripBorder | Obtiene el color de borde que se va a utilizar en el borde inferior de ToolStrip. | |
| ToolStripContentPanelGradientBegin | Obtiene el color de inicio del degradado utilizado en el control ToolStripContentPanel. | |
| ToolStripContentPanelGradientEnd | Obtiene el color final del degradado utilizado en el control ToolStripContentPanel. | |
| ToolStripDropDownBackground | Obtiene el color de fondo sólido del ToolStripDropDown. | |
| ToolStripGradientBegin | Obtiene el color de inicio del degradado utilizado en el fondo de ToolStrip. | |
| ToolStripGradientEnd | Obtiene el color final del degradado utilizado en el fondo de ToolStrip. | |
| ToolStripGradientMiddle | Obtiene el color medio del degradado utilizado en el fondo de ToolStrip. | |
| ToolStripPanelGradientBegin | Obtiene el color de inicio del degradado utilizado en el control ToolStripPanel. | |
| ToolStripPanelGradientEnd | Obtiene el color final del degradado utilizado en el control ToolStripPanel. | |
| UseSystemColors | Obtiene o establece un valor que indica si utilizar SystemColors en lugar de colores que coincidan con el estilo visual actual. |
por otro lado, y como les dije esta clase de framework .net, le proporciona los colores utilizados para los elementos de visualización de Microsoft Office, y como usar la clase que hemos hecho??, bien miren:
4) Paso y (y ultimo): para usar la clase con las definiciones de colores que esten dispuestos a cambar (los colores que no definan, se usara los que esten establecidos por defecto en la case “ProfessionalColorTable”, no piensen que quedan en color blanco), para usarlo, usaremos un ejemplo bien practico, en el evento load de un formulario y supuniendo que tenemos un menu llamado “main_menu”, miren, asi;
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
main_menu.Renderer = New ToolStripProfessionalRenderer(New Colores)
End Sub
Como veran se crea una nueva instancia de la clase Colores la quien heredo de la clase “ProfessionalColorTable”, instancia la cual fue pasada como parametro al constructor de la case “ToolStripProfessionalRenderer” y el resultado de esto se paso a la propiedad renderer del objeto main_menu, el cual es una propiedad de tipo ToolStripRenderer, la cual es clase base abstracta de las anteriores, como ven calza todo, :), espero que les sirva, pues cuando quise hacer esto, no enconstraba informacion de esto, pero como buen chileno, busco en todas partes menos donde se debe si tiene el MSDN Visual Studio .NET miren esto
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.es/dv_fxmclictl/html/94e7d7bd-a752-441c-b5b3-7acf98881163.htm
Ejecuntenlo desde menu->ejecutar y hasta la proxima, chao ![]()
Junio 17, 2008 a las 10:10 am
Muy, muy, muy aclarador. Muy Importante. Muy a menudo nos encontramos con problemas de ese tipo…
Muchísimas gracias.