none
Crear controles diferentes a los de Windows RRS feed

  • Pregunta

  • ¿Cómo hacen las empresas como DevExpress o Telerik para desarrollar sus propios controles, con temas personalizados?

    Pues estoy desarrollando una aplicacion pero los botones personalizados de Windows no le pegan

    Gracias.

    sábado, 13 de octubre de 2012 18:33

Respuestas

  • Para hacer un control completamente nuevo y personalizado en Windows Forms, se escribe una clase que herede System.Windows.Forms.Control, y se hace un override del método OnPaint. Dentro del OnPaint se dibuja mediante System.Drawing toda la estética del control. Por supuesto, también se puede hacer un override de otros métodos tales como OnClick u OnKeyDown para hacer que el control reaccione ante las acciones del usuario. La clase se compila en una DLL, y luego se añade al toolbox de Visual Studio para poder usar ese control en cualquier otro proyecto.

    • Propuesto como respuesta webJoseModerator sábado, 13 de octubre de 2012 19:14
    • Marcado como respuesta RuliLG sábado, 13 de octubre de 2012 19:20
    sábado, 13 de octubre de 2012 19:11

Todas las respuestas

  • Para hacer un control completamente nuevo y personalizado en Windows Forms, se escribe una clase que herede System.Windows.Forms.Control, y se hace un override del método OnPaint. Dentro del OnPaint se dibuja mediante System.Drawing toda la estética del control. Por supuesto, también se puede hacer un override de otros métodos tales como OnClick u OnKeyDown para hacer que el control reaccione ante las acciones del usuario. La clase se compila en una DLL, y luego se añade al toolbox de Visual Studio para poder usar ese control en cualquier otro proyecto.

    • Propuesto como respuesta webJoseModerator sábado, 13 de octubre de 2012 19:14
    • Marcado como respuesta RuliLG sábado, 13 de octubre de 2012 19:20
    sábado, 13 de octubre de 2012 19:11
  • Hay algún tutorial que me recomiendes para eso?

    Y también sirve para, por ejemplo, un combobox?

    Gracias

    sábado, 13 de octubre de 2012 19:21
  • No conozco ningún tutorial, aunque desde luego es posible que buscando por Internet aparezca alguno. Yo aprendí con el curso MOC 2555, que tiene un módulo entero dedicado a la creación de controles en Windows Forms. Pero es un curso de pago, no está disponible para descargarlo.

    En cuanto a lo del combobox, si quisieras personalizarlo, en lugar de heredar de la clase Control seria preferible heredar de la propia clase ComboBox para que todo el comportamiento venga ya predefinido. Lo más típico cuando alguien quiere un combo personalizado es que se quiera dibujar los items del combo de forma distinta a la predeterminada (por ejemplo, en distintos colores). Para ello, se cambia la propiedad DrawMode a OwnerDraw y se hace un override del método OnDrawItem para dibujar cada uno de los items del combo. Tienes un ejemplo aquí:

    http://www.codeproject.com/Articles/1767/Implementing-an-OwnerDrawn-ComboBox

    domingo, 14 de octubre de 2012 8:01