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);
                    }
                }
            }
        }
  • 相关阅读:
    JDBC
    Maven入门初级教程
    os.path路径拓展 python3
    requests实现文件下载, 期间显示文件信息&下载进度_python3
    yield浅析-Python3
    Scoop
    U盘启动盘制作工具(安装Linux)
    JavaScript摘要笔记
    Hexo+Github搭建博客&各种设置
    Linux下搭建svn服务端
  • 原文地址:https://www.cnblogs.com/xinzheng/p/13141098.html
Copyright © 2011-2022 走看看