Winform TextBox 明文与密文切换显示

Winform只需要将TextBox的PasswordChar属性设置为一个特殊字符,即可用于输入密码。但是,当用户输入了错误的密码时,删除所有的输入,再次重新输入就会显得有点麻烦,而且可能还会输错。因此,需要提供一种方式供用户查看自己输入的内容到底是什么。

  • 方式一:密码框的右边有一个复选框,当勾选该复选框时就显示用户的输入(明文),否则显示为密码
  • 方式二:密码框的右侧有一个类似眼睛的图标,当鼠标停留在该图标上就显示明文

要实现TextBox的明文和密文之间的切换,其实就是需要编写CheckBox的CheckedChanged事件。第二种方式也很好实现,只要编写MouseEnter事件和MouseLeave事件即可。

1. 将用于输入密码的TextBox的PasswordChar属性设为*,这样用户输入的密码就会用星号代替。当然,也可以将该属性设置为其它字符。

2. 编写CheckBox的CheckedChanged事件:

private void checkbox_CheckedChanged(object sender, EventArgs e)
{
    char c = new char();
    //是否明文显示密码
    if (checkbox.Checked)
    {
        textBox1.PasswordChar = c;
        textBox2.PasswordChar = c;
        textBox3.PasswordChar = c;
    }
    else
    {
        textBox1.PasswordChar = '*';
        textBox2.PasswordChar = '*';
        textBox3.PasswordChar = '*';
    }
}

效果图为:

你可能感兴趣的:(C#)