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);
            }

        }
    }

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

  • 相关阅读:
    equa与==的区别
    使用Log4j进行日志操作
    动态代理的步骤
    批量插入使用SqlBulkCopy
    SQL之开窗函数二——在复杂场景中的实际运用
    SQL Server数据类型详解
    SQL Server遍历表的几种方法
    SQL Server之表变量
    SQL Server之字符串处理函数
    SQL Server之String_Split函数(SQL Server2016版本以上使用)
  • 原文地址:https://www.cnblogs.com/songling/p/2126583.html
Copyright © 2011-2022 走看看