如何将符号(磅,欧元,版权)插入文本框

我知道我可以使用带键盘的Alt键输入符号,但是如何以编程方式将符号(磅,欧元,版权)插入文本框?

我有一个配置屏幕,所以我需要动态创建\ uXXXX。

在此处输入图像描述

在C#中, X是hex字符的Unicode字符文字\uXXXX将允许您指定Unicode字符。 例如:

  • \u00A3是英镑符号,£。
  • \u20AC是欧元符号,€。
  • \u00A9是版权符号,©。

您可以像使用字符串中的任何其他字符一样使用这些Unicode字符文字。

例如, "15 \u00A3 per item"将是字符串“每个项目15英镑”。

您可以将这样的字符串放在文本框中,就像使用任何其他字符串一样。

注意:您也可以只删除( Ctrl + C )网站上的符号,例如Wikipedia(英镑符号) ,然后将其直接粘贴( Ctrl + V )到C#源代码文件中的字符串文字中。 C#源代码文件本身使用Unicode。 这种方法完全免除了您甚至不必知道所需符号的四个hex数字。

为了与上面的例子平行,您可以将相同的字符串文字简单地设为"15 £ per item"

编辑:如果要从其hex字符串动态创建Unicode字符,可以使用以下命令:

 public static char HexToChar(string hex) { return (char)ushort.Parse(hex, System.Globalization.NumberStyles.HexNumber); } 

例如, HexToChar("20AC")将为您提供欧元符号。

如果要动态执行相反的操作:

 public static string CharToHex(char c) { return ((ushort)c).ToString("X4"); } 

例如CharToHex('€')将为您提供"20AC"

ushort的选择对应于可能的char值范围,如下所示。

我不敢相信这在互联网上很难找到!

对于未来的开发人员,如果你有unicode字符,那么很容易做到。 例如:

C#:

 var selectionIndex = txt.SelectionStart; string copyrightUnicode = "00A9"; int value = int.Parse(copyrightUnicode, System.Globalization.NumberStyles.HexNumber); string symbol = char.ConvertFromUtf32(value).ToString(); txt.Text = txt.Text.Insert(selectionIndex, symbol); txt.SelectionStart = selectionIndex + symbol.Length; 

VB.Net

 Dim selectionIndex = txt.SelectionStart Dim copyrightUnicode As String = "00A9" Dim value As Integer = Integer.Parse(copyrightUnicode, System.Globalization.NumberStyles.HexNumber) Dim symbol As String = Char.ConvertFromUtf32(value).ToString() txt.Text = txt.Text.Insert(selectionIndex, symbol) txt.SelectionStart = selectionIndex + symbol.Length