2

可能重复:
哪个密码字符在 winforms 文本框中显示黑点 (•)?
C++11 中字符串文字的 Unicode 编码

我想使用代码来显示密码或将其设为点状 •</p>

textBoxNewPassword.PasswordChar = (char)0149;

我怎样才能做到这一点?

4

5 回答 5

7

http://blog.billsdon.com/2011/04/dot-password-character-c/建议“\u25CF”;

或者尝试复制粘贴这个•</p>

于 2012-11-05T17:12:08.767 回答
7

(不完全是您问题的答案,但仍然)

您还可以使用该UseSystemPasswordChar属性来选择系统的默认密码字符:

textBoxNewPassword.UseSystemPasswordChar = true;

通常映射到点,并始终创建一致的用户体验。

于 2012-11-05T17:15:55.037 回答
1

维基百科有一个相似符号表

在 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")

于 2012-11-05T18:59:47.797 回答
1

您需要考虑使用PasswordBox控件并将其设置PasswordChar*.

例子:

textBox1.PasswordChar = '*'; // Set a text box for password input
于 2012-11-05T17:12:03.727 回答
0
textBoxNewPassword.PasswordChar = '\u25CF';
于 2012-11-05T17:11:29.460 回答