• Enabled设置为False时,前景色和背景色也不改变的TextBox 并居中


    1.公共方法

        public class MyTextBox : TextBox
        {
            
    protected override void OnEnabledChanged(EventArgs e)
            {
                
    base.OnEnabledChanged(e);
                
    //设置Enabled为False时
                if (this.Enabled)
                {
                    
    this.SetStyle(ControlStyles.UserPaint, false);
                   
                }
                
    else
                    
    this.SetStyle(ControlStyles.UserPaint, true);
                
    //再描绘
                this.Invalidate();
            }

            
    //描绘TextBox
            protected override void OnPaint(PaintEventArgs e)
            {
                
    base.OnPaint(e);
                System.Drawing.Brush b 
    =
                    
    new System.Drawing.SolidBrush(this.ForeColor);

                StringFormat sf 
    = new StringFormat();
                sf.LineAlignment 
    = StringAlignment.Center;
                sf.Alignment 
    = StringAlignment.Center;
                
    //描绘字符串
                
    //e.Graphics.DrawString(this.Text, this.Font, b, -1, 1);
                e.Graphics.DrawString(this.Text, this.Font, b, this.ClientRectangle, sf);

                b.Dispose();
            }
        }

    2.页面 designer.cs修改为 MyTextBox

  • 相关阅读:
    接收HttpPost请求路由可以不用带去掉参数
    吟唱一首
    C# XML反序列化解析成对象集合
    两个对象中相同属性赋值
    CefSharp 笔记-1
    C# 笔记--Label设置背景图片
    C# 笔记--VS 2017包下载超时,连接失败
    SQLite——C#查询表时 该字符串未被识别为有效的 DateTime 错误
    C# 笔记--Sendkeys
    C# 笔记——MeasureString准确测量
  • 原文地址:https://www.cnblogs.com/dodui/p/1916313.html
Copyright © 2020-2023  润新知