Как снять маску с текстового поля пароля? - PullRequest
1 голос
/ 07 апреля 2020

Я хотел бы переключить видимость пароля для текстового поля с помощью элемента флажка. Поэтому, когда состояние изменяется, я хотел бы отобразить пароль с символами пароля или в виде обычного текста.

Используя C#, я могу просто назначить символ пароля для звездочек с помощью

textBox.PasswordChar = '*';

и для простой текст

textBox.PasswordChar = '\0';

С VB у меня в настоящее время есть этот пример кода

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    If CheckBox1.Checked Then
        TextBox1.PasswordChar = '\0'
        CheckBox1.Text = "Hide password"
    Else
        TextBox1.PasswordChar = '*'
        CheckBox1.Text = "Show password"
    End If
End Sub

и я нашел некоторую информацию здесь

Как вы объявляете литерал Char в Visual Basi c. NET?

Я знаю, что ' рассматривается как комментарий, поэтому я должен использовать двойные кавычки. Я могу обновить '*' до "*"C, но что эквивалентно '\0'?

Как правильно снять маску с пароля текстового поля?

1 Ответ

3 голосов
/ 07 апреля 2020

Вы можете использовать ключевое слово Nothing, которое установит значение по умолчанию для ожидаемого типа (в данном случае Char):

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    TextBox1.PasswordChar = If(CheckBox1.Checked, Nothing, "*"c)
End Sub

Лучшим способом будет использовать свойство UseSystemPasswordChar вместо PasswordChar. Это делает маску пароля «более стандартной». Это, конечно, если вы не хотите использовать пользовательский символ. Вот пример:

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    TextBox1.UseSystemPasswordChar = Not CheckBox1.Checked
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...