Визуализация текста в качестве пароля с использованием системного пароля char в Windows Forms.NET - PullRequest
0 голосов
/ 07 марта 2012

Элемент управления Windows Forms TextBox имеет два свойства, PasswordChar и UseSystemPasswordChar, которые контролируют скрытие паролей, введенных в TextBox.Мне нужно визуализировать указанный текст на графической поверхности не TextBox таким же образом.

Я могу рассчитать длину указанной строки и создать эквивалентное текстовое представление, если мы используем символ из свойства PasswordChar, нокак насчет UseSystemPasswordChar?Как нам получить действующий системный пароль char?

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

1 Ответ

0 голосов
/ 07 марта 2012

Символ пароля по умолчанию в Windows является звездным, если не включены визуальные стили, в этом случае это черный круг.

Вы можете проверить, включены ли визуальные стили с помощью Application.RenderWithVisualStyles

http://msdn.microsoft.com/en-us/library/windows/desktop/bb761594(v=vs.85).aspx

Кроме того, вы можете создать текстовое поле и просто прочитать значение PasswordChar, хотя это выглядит немного грязно.

 char passwordChar = (new TextBox(){UseSystemPasswordChar = true}).PasswordChar;

Под капотом этот звонок отправляет сообщение EM_GETPASSWORDCHAR в windows api.

...