2 years ago
#127300
M.J
OnPaint event doesn't fire in c# custom control Updated
firstly I tried many solutions I found it here but it's still doesn't work!
I have a custom textbox control but the OnPaint event doesn't fire:
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MyMainApp._MyTools
{
    public partial class Joul_TextBox : TextBox
    {
        //Constructor
        public Joul_TextBox()
        {
            InitializeComponent();
            //General Properties
            RightToLeft = RightToLeft.Yes;
            Size = new Size(250, 24);
            MaxLength = 50;
            //Colors
            BackColor = Color.WhiteSmoke;
            ForeColor = Color.FromArgb(64, 64, 64);
            //Borders
            BorderStyle = BorderStyle.FixedSingle;
            BorderColor = Color.Color3;
        }
        #region Fields
        bool _IsFocus;
        
        #endregion
        #region Event
        protected override void OnEnter(EventArgs e)
        {
            base.OnEnter(e);
            _IsFocus = true;
            this.Invalidate();
        }
        protected override void OnLeave(EventArgs e)
        {
            base.OnLeave(e);
            _IsFocus = false;
            this.Invalidate();
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
            if (_IsFocus)
            {
                this.BackColor = Color.FromArgb(60, 60, 60);
                this.ForeColor = Color.White;
                this.Font = new Font("Tahoma", 10F, FontStyle.Bold);
            }
        }
        #endregion
    }
}
I called invalidate but still doesn't work, can you help me, please. I say again that I searched here and applied all solutions but still doesn't work.
thanks
Update:
before applying SetStyle(ControlStyles.UserPaint, true); :
After:
c#
custom-controls
onpaint
0 Answers
Your Answer

