[C#.NET]最简单的实现文本框的水印效果

C#项目开发中在设计登录界面时,经常会遇到TextBox的水印提示要求。这里简单描述一下项目在实现水印提示的过程设置。如下图图1所示。

[C#.NET]最简单的实现文本框的水印效果

 [C#.NET]最简单的实现文本框的水印效果

图1  窗体布局

一、窗体布局(如图1所示)

1、  在窗体中放置两个label标签,其中text属性分别为“用户名:”和“密码:”。

2、  放置两个TextBox控件,其(Name)属性命名为“UserNameTxt”和“PwdTxt”。

3、  在放置两个label标签,把它们放在TextBox控件中,其(Name)属性命名为“labelUser”和“labelPwd”。

4、  在窗体中放置两个button按钮,其(Name)属性命名为“Login”和“Cancel”。

二、代码设置

在LoginForm.cs文件中添加如下代码:

        //控制label标签消失,改变passwordchar的属性值

        privatevoidtextChanged(object sender, EventArgse)

        {

            if(sender.Equals(UserNameTxt))

            {

               labelUser.Visible = UserNameTxt.Text.Length < 1;

            }

            elseif(sender.Equals(PwdTxt))

            {

               labelPwd.Visible = PwdTxt.Text.Length < 1;

               PwdTxt.PasswordChar = '*';//隐藏输入的密码

            }

        }

        //获取焦点

        privatevoidlabel_Click(object sender, EventArgse)

        {

            if(sender.Equals(labelUser))

            {

               UserNameTxt.Focus();

            }

            elseif(sender.Equals(labelPwd))

            {

               PwdTxt.Focus();

               //PwdTxt.PasswordChar = '*';

            }

     }

三、事件方法关联

在实现控件布局和方法体后,接下来就是实现它们的的关联。将两个TextBox控件, “UserNameTxt”和“PwdTxt”的TextChanged事件分别关联textChanged方法。将两个label标签“labelUser”和“labelPwd”的Click事件分别关联label_Click方法。如下图2和图3所示。

[C#.NET]最简单的实现文本框的水印效果

图2 关联textChanged方法

[C#.NET]最简单的实现文本框的水印效果

图3 关联label_Click方法

 [C#.NET]最简单的实现文本框的水印效果

[C#.NET]最简单的实现文本框的水印效果

四、实现的效果

[C#.NET]最简单的实现文本框的水印效果

图4 登录输入时的效果

[C#.NET]最简单的实现文本框的水印效果