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

时间:2013-09-05 04:22:04

标签: c# .net vb.net symbols

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

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

enter image description here

2 个答案:

答案 0 :(得分:34)

在C#中,\uXXXX为十六进制字符的Unicode字符文字X将允许您指定Unicode字符。例如:

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

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

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

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

注意:您也可以从网站上复制( Ctrl + C )符号,例如Wikipedia (Pound sign),然后将其直接粘贴( Ctrl + V )到C#源代码文件中的字符串文字中。 C#源代码文件本身使用Unicode。这种方法完全可以让您不必知道所需符号的四个十六进制数字。

为了与上面的示例平行,您可以使用与"15 £ per item"相同的字符串文字。

编辑:如果您想动态从其十六进制字符串创建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值的范围,显示为here

答案 1 :(得分:8)

我无法相信这在互联网上很难找到!

对于未来的开发人员,如果你有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
相关问题