none
CAMBIAR BACKCOLOR DE BUTTON WINDOWS FORM C# RRS feed

  • Pregunta

  • Buen día, espero puedan ayudar con el siguiente problema:

    He creado un control que hereda del control Button y he sobrescrito el metodo OnPaint

    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;

    namespace Diseño
    {
        public partial class BtnDesign : Button
        {
            public BtnDesign()
            {
                InitializeComponent();
            }
            public BtnDesign(IContainer container)
            {
                container.Add(this);

                InitializeComponent();
            }
            protected override void OnPaint(PaintEventArgs pe)
            {
                base.OnPaint(pe);
                ImageAlign = ContentAlignment.MiddleLeft;
                Size = new Size(80, 30);
                TextAlign = ContentAlignment.MiddleRight;
                BackColor = Color.Red;
                FlatStyle = FlatStyle.Flat;
            }
        }
    }

    Y tengo otro control(boton) que hereda de este:

    using System.ComponentModel;
    using Diseño;

    namespace Controles
    {
        public partial class BtnNuevo : BtnDesign
        {
            public BtnNuevo()
            {
                InitializeComponent();
            }

            public BtnNuevo(IContainer container)
            {
                container.Add(this);
                InitializeComponent();
            }
        }
    }

    El problema surge cuando uso el botón BtnNuevo en un formulario y al compilar me muestra el siguiente error:

    Error de compilación

    Espero puedan ayudarme, o si conocen alguna otra forma de cambiar las propiedades BackColor y FlatStyle que son los que generan el error de compilación. Gracias.

    viernes, 19 de octubre de 2018 21:18

Todas las respuestas

  • Sospecho que el problema puede estar en "container.Add(this)". El control personalizado no debería añadirse a sí mismo al contenedor, sino que es el diseñador de formularios el que genera externamente el código que añade el control al formulario. Posiblemente por eso te esté saliendo el error de que "no se puede modificar en el diseñador..."
    domingo, 21 de octubre de 2018 13:01
  • Gracias por respondes Aberto, ya probé excluyéndolo aun así no funciona.

    lunes, 22 de octubre de 2018 0:11