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属性将零视为具有“不显示密码屏蔽”的特殊含义