C#项目开发中在设计登录界面时,经常会遇到TextBox的水印提示要求。这里简单描述一下项目在实现水印提示的过程设置。如下图图1所示。
图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]最简单的实现文本框的水印效果 [C#.NET]最简单的实现文本框的水印效果](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWctYmxvZy5jc2RuLm5ldC8yMDE2MDUzMTA5NTMwNTE5NT93YXRlcm1hcmsvMi90ZXh0L2FIUjBjRG92TDJKc2IyY3VZM05rYmk1dVpYUXYvZm9udC81YTZMNUwyVC9mb250c2l6ZS80MDAvZmlsbC9JMEpCUWtGQ01BPT0vZGlzc29sdmUvNzAvZ3Jhdml0eS9DZW50ZXI%3D.jpg?w=700&webp=1)
图2 关联textChanged方法
图3 关联label_Click方法
四、实现的效果
![[C#.NET]最简单的实现文本框的水印效果 [C#.NET]最简单的实现文本框的水印效果](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWctYmxvZy5jc2RuLm5ldC8yMDE2MDUzMTA5NTUxODQzMT93YXRlcm1hcmsvMi90ZXh0L2FIUjBjRG92TDJKc2IyY3VZM05rYmk1dVpYUXYvZm9udC81YTZMNUwyVC9mb250c2l6ZS80MDAvZmlsbC9JMEpCUWtGQ01BPT0vZGlzc29sdmUvNzAvZ3Jhdml0eS9DZW50ZXI%3D.jpg?w=700&webp=1)
图4 登录输入时的效果