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

        }
    }

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

  • 相关阅读:
    StrictMode 检测应用
    动态设置视图大小
    查看手机CPU每个APP利用率
    获取屏幕尺寸,大于7为平板,小于7为手机
    Charles 抓取https 包
    SparseArray
    Gradle 差异化构建
    HashMap原理
    Gc root 定义
    Java多线程
  • 原文地址:https://www.cnblogs.com/songling/p/2126583.html
Copyright © 2020-2023  润新知