Windows窗体TextBox
控件有两个属性PasswordChar
和UseSystemPasswordChar
,用于控制键入TextBox
的密码的模糊。我需要以相同的方式将指定的文本渲染到非TextBox图形表面上。
如果我们使用PasswordChar属性中的char,我可以计算指定字符串的长度并创建等效的文本表示,但UseSystemPasswordChar呢?我们如何检索有效的系统密码char?
或者可能有一个标志或一个现成的.NET方法或类,我们可以使用它来将指定的文本呈现为密码,而无需手动完成所有这些工作?
答案 0 :(得分: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。