zoukankan      html  css  js  c++  java
  • Winform 水印TextBox

    方法一:

    public partial class WaterTextBox : TextBox
       {
           private readonly Label lblwaterText = new Label();
    
           public WaterTextBox()
           {
               InitializeComponent();
               lblwaterText.BorderStyle = BorderStyle.None;
               lblwaterText.Enabled = false;
               lblwaterText.BackColor = Color.White;
               lblwaterText.AutoSize = false;
               lblwaterText.Top = 1;
               lblwaterText.Left = 0;
               Controls.Add(lblwaterText);
           }
    
           [Category("扩展属性"), Description("显示的提示信息")]
           public string WaterText
           {
               get { return lblwaterText.Text; }
               set { lblwaterText.Text = value; }
           }
    
           public override string Text
           {
               set
               {
                   if (value != string.Empty)
                       lblwaterText.Visible = false;
                   else
                       lblwaterText.Visible = true;
                   base.Text = value;
               }
               get { return base.Text; }
           }
    
           protected override void OnSizeChanged(EventArgs e)
           {
               if (Multiline && (ScrollBars == ScrollBars.Vertical || ScrollBars == ScrollBars.Both))
                   lblwaterText.Width = Width - 20;
               else
                   lblwaterText.Width = Width;
               lblwaterText.Height = Height - 2;
               base.OnSizeChanged(e);
           }
    
           protected override void OnEnter(EventArgs e)
           {
               lblwaterText.Visible = false;
               base.OnEnter(e);
           }
    
           protected override void OnLeave(EventArgs e)
           {
               if (base.Text == string.Empty)
                   lblwaterText.Visible = true;
               base.OnLeave(e);
           }
       }

    方法二:(待改进)改进点:提示文本是颜色,进入时自动消失,失去焦点后如果没有值又显示提示文本。如果哪位改进好了,可以回给我看看吗?

    public partial class WaterTextBox1 : TextBox
        {
            private String strEmptyValue = String.Empty;
    
            public WaterTextBox1()
            {
                InitializeComponent();
                processDefaultValue();
            }
    
            public String EmptyValue //记录空值的表现
            {
                get { return strEmptyValue; }
                set
                {
                    if (base.Text == strEmptyValue)
                        base.Text = value.Trim();
                    strEmptyValue = value.Trim();
                    processDefaultValue();
                }
            }
    
            public override string Text //覆盖Text属性
            {
                get { return base.Text.Trim() == strEmptyValue.Trim() ? String.Empty : base.Text.Trim(); }
                set
                {
                    base.Text = value;
                    processDefaultValue();
                }
            }
    
            protected override void OnVisibleChanged(EventArgs e)
            {
                base.OnVisibleChanged(e);
                processDefaultValue();
            }
    
            protected override void OnMouseClick(MouseEventArgs e)
            {
                base.OnMouseClick(e);
                if (base.Text == strEmptyValue)
                {
                    SelectAll();
                }
    
            }
    
            protected override void OnValidating(CancelEventArgs e) //覆盖TextBox验证处理
            {
                processDefaultValue();
                base.OnValidating(e);
            }
    
            private void processDefaultValue() //处理表现空值的方法
            {
                base.Text = base.Text.Trim().Length <= 0 ? strEmptyValue : base.Text.Trim();
            }
        }
  • 相关阅读:
    JSONObject处理java.util.Date
    JSON lib 里JsonConfig详解
    Android编程获取手机的IMEI
    Toast用法
    JMM内存管理
    Users is not mapped(Hibernate实体类采用注解)
    指针小结(不定期更新)
    这个博客几乎不用了,转到csdn
    2013暑期在家(1)
    用户空间与内核空间,进程上下文与中断上下文[总结]
  • 原文地址:https://www.cnblogs.com/wangchuang/p/3164863.html
Copyright © 2011-2022 走看看