从文本框中显示密码

时间:2014-07-23 10:14:31

标签: c# winforms

我使用PasswordChar = '*';创建了一个TextBox控件 现在我想在用户选中复选框时显示密码。 奇怪的是它不起作用,我无法看到我的密码

这是我的代码

if (DisplayPasswordCheckBox.Checked)
     PasswordTB.PasswordChar = char.Parse("\0");
else
     PasswordTB.PasswordChar = char.Parse("*");

知道我在这里做错了吗?

已修改:如果您使用的是UseSystemPasswordChar = true,请在更改密码字符之前将其关闭以在屏幕上显示结果

3 个答案:

答案 0 :(得分:4)

您应该将代码更改为以下代码:

if (DisplayPasswordCheckBox.Checked)
    PasswordTB.PasswordChar = '\0';
else
    PasswordTB.PasswordChar = '*';

你不必解析任何东西。因此,您不需要使用char.Parse()方法。

有关名为PasswordChar的媒体资源的详情,请查看here

答案 1 :(得分:2)

来自msdn:

  

用于屏蔽在单行TextBox中输入的字符的字符   控制。如果您将此属性的值设置为0(字符值)   不希望控件在键入字符时屏蔽它们。等于0   (字符值)默认情况下。

来源:msdn

所以解决方案是

if (DisplayPasswordCheckBox.Checked)
     PasswordTB.PasswordChar = '\0'; //msdn says: 0 as character value.
else
     PasswordTB.PasswordChar = '*';

其他解决方案:

PasswordTB.PasswordChar = (char)0;

答案 2 :(得分:0)

希望这会有所帮助

    if (DisplayPasswordCheckBox.Checked)
        PasswordTB.PasswordChar = '\0';
    else
        PasswordTB.PasswordChar = char.Parse("*");