【问题标题】:Which passwordchar shows a black dot (•) in a winforms textbox using code? [duplicate]哪个密码字符使用代码在 winforms 文本框中显示黑点 (•)? [复制]
【发布时间】:2012-11-05 17:09:57
【问题描述】:

可能重复:
Which passwordchar shows a black dot (•) in a winforms textbox?
Unicode encoding for string literals in C++11

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

textBoxNewPassword.PasswordChar = (char)0149;

我怎样才能做到这一点?

【问题讨论】:

  • 它不是重复的。我正在尝试 2 在代码中执行此操作。另一个人使用设计器中的属性做到了
  • 你可以试试textBoxNewPassword.PasswordChar ='\u2022'
  • @CocoaDev 它有什么不同?只需复制/粘贴字符。

标签: c# winforms security


【解决方案1】:

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

或者尝试复制粘贴这个•

【讨论】:

    【解决方案2】:

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

    也可以使用UseSystemPasswordChar属性选择系统默认密码字符:

    textBoxNewPassword.UseSystemPasswordChar = true;
    

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

    【讨论】:

      【解决方案3】:

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

      示例:

      textBox1.PasswordChar = '*'; // Set a text box for password input
      

      【讨论】:

        【解决方案4】:

        维基百科有a table of similar symbols

        在 C# 中,要生成对应于 U+2022(例如)的 char 文字,请使用 '\u2022'。 (也可以像在问题中那样转换整数文字,(char)8226


        后期添加。您最初的方法不成功的原因是您拥有的值 149 不是 Unicode 代码点。相反,它来自 Windows-1252,并且 Windows-1252 不是 Unicode 的子集。在 Unicode 中,十进制 149 表示 C1 control code “消息等待”

        您可以从 Windows-1252 翻译为:

        textBoxNewPassword.PasswordChar = 
          Encoding.GetEncoding("Windows-1252").GetString(new byte[] { 149, })[0];
        

        但当然直接使用Unicode值更容易。


        在较新版本的 .NET 中,您需要调用:

        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        

        在您可以使用 Encoding.GetEncoding("Windows-1252") 之类的东西之前。

        【讨论】:

          【解决方案5】:
          textBoxNewPassword.PasswordChar = '\u25CF';
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-05-04
            • 2020-09-11
            • 2013-10-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多