我目前正在为我的程序创建一个登录表单,其中我有两个文本框电子邮件和密码的水印。
当文本框为空时,其水印文本将显示在其中,如“在此处输入电子邮件”和“在此输入密码”。
到目前为止我的代码是:
private void emailLogin_Leave(object sender, EventArgs e){
if (emailLogin.Text.Length == 0){
emailLogin.Text = "Email";
emailLogin.ForeColor = Color.Silver;
}
}
private void emailLogin_Enter(object sender, EventArgs e){
if (emailLogin.Text == "Email"){
emailLogin.Text = "";
emailLogin.ForeColor = Color.Black;
}
}
private void passwordLogin_Leave(object sender, EventArgs e){
if (passwordLogin.Text.Length == 0){
passwordLogin.Text = "Password";
passwordLogin.ForeColor = Color.Silver;
}
}
private void passwordLogin_Enter(object sender, EventArgs e){
if (passwordLogin.Text == "Password"){
passwordLogin.Text = "";
passwordLogin.ForeColor = Color.Black;
}
}
但现在我的问题是我想使用密码字符作为密码。 但我仍然希望水印文本是常规文本。 当我检查使用密码char时,它会将我的水印变为“ * * ”而不是“密码”。我该如何解决这个问题?
顺便说一句,我不想使用“UseSystemPasswordChar”(那些点)。我想使用“PasswordChar”并使用星号(*)作为密码字符。
答案 0 :(得分:6)
只需设置它并取消设置,就像对ForeColor一样:
private void passwordLogin_Leave(object sender, EventArgs e){
if (passwordLogin.Text.Length == 0){
passwordLogin.Text = "Password";
passwordLogin.ForeColor = Color.Silver;
passwordLogin.PasswordChar = '\0';
}
}
private void passwordLogin_Enter(object sender, EventArgs e){
if (passwordLogin.Text == "Password"){
passwordLogin.Text = "";
passwordLogin.ForeColor = Color.Black;
passwordLogin.PasswordChar = '*';
}
}