zoukankan      html  css  js  c++  java
  • WinForm水印文本框

        [ToolboxBitmap(typeof(TextBox))]
        public class WatermarkTextBox : TextBox
        {
            private string _emptyTextTip;
            private Color _emptyTextTipColor = Color.DarkGray;
            private const int WM_PAINT = 0xF;
    
            public WatermarkTextBox()
                : base()
            {
            }
    
            [DefaultValue("")]
            public string EmptyTextTip
            {
                get { return _emptyTextTip; }
                set
                {
                    _emptyTextTip = value;
                    Invalidate();
                }
            }
    
            [DefaultValue(typeof(Color), "DarkGray")]
            public Color EmptyTextTipColor
            {
                get { return _emptyTextTipColor; }
                set
                {
                    _emptyTextTipColor = value;
                    Invalidate();
                }
            }
    
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
                if (m.Msg == WM_PAINT)
                {
                    WmPaint();
                }
            }
    
            private void WmPaint()
            {
                using (Graphics graphics = Graphics.FromHwnd(Handle))
                {
                    if (Text.Length == 0
                        && !string.IsNullOrEmpty(_emptyTextTip)
                        && !Focused)
                    {
                        TextFormatFlags format =
                            TextFormatFlags.EndEllipsis |
                            TextFormatFlags.VerticalCenter;
    
                        if (RightToLeft == RightToLeft.Yes)
                        {
                            format |= TextFormatFlags.RightToLeft | TextFormatFlags.Right;
                        }
    
                        TextRenderer.DrawText(
                            graphics,
                            _emptyTextTip,
                            Font,
                            ClientRectangle,
                            _emptyTextTipColor,
                            format);
                    }
                }
            }
        }
  • 相关阅读:
    乱写
    C# 实现水印
    C# Json转对象
    C#自定义控件的创建
    C# 调用WebService服务
    C# 标准的MD5加密32位
    C# DataGridview用NPOI导出Excel文件
    手机屏幕分辨率和浏览器分辨率
    Java学习之Iterator(迭代器)的一般用法 (转)
    nginx的RTMP协议服务器
  • 原文地址:https://www.cnblogs.com/xinzheng/p/13141098.html
Copyright © 2011-2022 走看看