可能重复:
哪个密码字符在 winforms 文本框中显示黑点 (•)?
C++11 中字符串文字的 Unicode 编码
我想使用代码来显示密码或将其设为点状 •</p>
textBoxNewPassword.PasswordChar = (char)0149;
我怎样才能做到这一点?
可能重复:
哪个密码字符在 winforms 文本框中显示黑点 (•)?
C++11 中字符串文字的 Unicode 编码
我想使用代码来显示密码或将其设为点状 •</p>
textBoxNewPassword.PasswordChar = (char)0149;
我怎样才能做到这一点?
http://blog.billsdon.com/2011/04/dot-password-character-c/建议“\u25CF”;
或者尝试复制粘贴这个•</p>
(不完全是您问题的答案,但仍然)
您还可以使用该UseSystemPasswordChar
属性来选择系统的默认密码字符:
textBoxNewPassword.UseSystemPasswordChar = true;
通常映射到点,并始终创建一致的用户体验。
维基百科有一个相似符号表。
在 C# 中,要生成char
对应于 U+2022(例如)的文字,请使用'\u2022'
. (也可以像在问题中那样转换整数文字,(char)8226
)
后期添加。您最初的方法不成功的原因是149
您拥有的值不是 Unicode 代码点。相反,它来自Windows-1252,并且Windows-1252 不是 Unicode 的子集。在 Unicode 中,十进制149
表示C1 控制代码 "Message Waiting"。
您可以从 Windows-1252 转换为:
textBoxNewPassword.PasswordChar =
Encoding.GetEncoding("Windows-1252").GetString(new byte[] { 149, })[0];
但当然直接使用 Unicode 值更容易。
在较新版本的 .NET 中,您需要调用:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
在你可以使用类似的东西之前Encoding.GetEncoding("Windows-1252")
。
您需要考虑使用PasswordBox
控件并将其设置PasswordChar
为*
.
例子:
textBox1.PasswordChar = '*'; // Set a text box for password input
textBoxNewPassword.PasswordChar = '\u25CF';