zoukankan      html  css  js  c++  java
  • winform textbox加水印效果

    首先创建一个用户控件名称为WatermakTextBox,让其继承textbox,代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;

    namespace UpdateSetting
    {
        public partial class WatermakTextBox : TextBox
        {
            private readonly Label lblwaterText = new Label();

            public WatermakTextBox()
            {
                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);
            }

        }
    }

    然后将生成后的用户控件放到自己的项目中使用即可

  • 相关阅读:
    关于ios7的适配问题
    iOS安全攻防(十八):数据保护API
    【Objective-C】OC中KVO的基本概念和使用方法
    pytest运行方式
    unittest中使用ddt做数据驱动
    unittest使用HtmlTestRunner显示报告
    unittest中的断言内容
    unittest指定跳过某些方法
    unittest运行时指定运行顺序
    xpath使用属性元素定位,包含 and 、or、not
  • 原文地址:https://www.cnblogs.com/songling/p/2126583.html
Copyright © 2011-2022 走看看