C#-水印密码字符?
我目前正在制作一个登录表单到我的程序中,在那里我有两个文本框电子邮件和密码的水印 当文本框为空时,其水印文本将显示在其中,如“在此处输入电子邮件”和“在此处输入密码” 到目前为止,我的代码是:C#-水印密码字符?,c#,winforms,watermark,C#,Winforms,Watermark,我目前正在制作一个登录表单到我的程序中,在那里我有两个文本框电子邮件和密码的水印 当文本框为空时,其水印文本将显示在其中,如“在此处输入电子邮件”和“在此处输入密码” 到目前为止,我的代码是: private void emailLogin_Leave(object sender, EventArgs e){ if (emailLogin.Text.Length == 0){ emailLogin.Text = "Email";
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;
}
}
但现在我的问题是,我想使用密码字符作为密码。
但我仍然希望水印文本是普通文本。
当我选择使用密码字符时,它会将我的水印变成“***”而不是“密码”。我怎样才能解决这个问题
顺便说一下,我不想使用“UseSystemPasswordChar”(那些点)。我想使用“PasswordChar”并使用星号(*)作为密码字符。只需设置并取消设置它,就像对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 = '*';
}
}
请添加一个标记,说明这个问题是与Windows窗体还是与WPF相关。在WPF中,Textbox的前台属性不是ForeColor。所以这是Windows FormsWorks太棒了!非常感谢你!我不知道有关\0的信息。这到底是什么意思?再次感谢你!:)@user3036459
\0
只是一个空字符,也就是说没有。所以很简单,哈哈!我花了整整45分钟想弄明白。谢谢!:)\0不是真正的“无”-只是PasswordChar属性将零视为具有“不显示密码屏蔽”的特殊含义