Me gustaría poder cambiar el color del borde de los controles ToolStripComboBox en algunas de mis tiras de herramientas, ya que el color de borde predeterminado de ComboBoxes cuando se usa con estilo plano es SystemColors.Window, que es básicamente invisible contra el color de control predeterminado de la tira de herramientas. Después de investigar mucho en Reflector, no veo ninguna forma obvia de hacerlo, ya que toda la infraestructura detrás de la representación de ComboBox está altamente protegida detrás de las interfaces internas y privadas.Cambiar borde de ToolStripComboBox con estilo plano
Fuera de ToolStrips, una solución común que he visto para fijar el color del borde en ComboBoxes es crear una subclase de ComboBox, anular WndProc y pintar manualmente el borde. Esto no puede funcionar para los controles ToolStripComboBox ya que el control ComboBox interno es su propia subclase privada de ComboBox, sin posibilidad de que pueda reemplazar la instancia del control.
Una solución alternativa que estoy considerando es poner uno de los objetos ComboBox extendidos en un ToolStripControlHost, que me permite dibujar un borde, pero luego tengo que renunciar a algunos de los ajustes profesionales del renderizador. Un inconveniente secundario que he notado es que ocasionalmente parpadeo durante el mouseover.
Cambiar mi diseño a WPF no es una solución aceptable. Los controles de envoltura en los controles principales para dibujar bordes tampoco son aceptables, ya que esto no gana nada con la alternativa ToolStripControlHost.
¿Alguien tiene una solución inteligente para vencer este problema, o hay una reimplantación existente (con licencia permisiva) de la pila de renderizado plano de ComboBox, que soluciona algunas de las deficiencias existentes ¿implementación?