0

Windows 窗体TextBox控件有两个属性,PasswordCharUseSystemPasswordChar,它们控制输入到TextBox. 我需要以相同的方式将指定的文本渲染到非 TextBox 图形表面上。

如果我们使用 PasswordChar 属性中的字符,我可以计算指定字符串的长度并创建等效的文本表示,但是 UseSystemPasswordChar 呢?我们如何检索有效的系统密码字符?

或者也许有一个标志或一个现成的 .NET 方法或类,我们可以使用它来将指定的文本呈现为密码,而无需手动完成所有这些工作?

4

1 回答 1

0

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。

于 2012-03-07T13:44:33.620 回答