我可以使用Alt带有数字键盘的键来键入符号,但是如何以编程方式将符号(英镑、欧元、版权)插入文本框?
我有一个配置屏幕,所以我需要动态创建 \uXXXX。
在 C# 中, ' 是十六进制字符的 Unicode 字符文字\uXXXX
将X
允许您指定 Unicode 字符。例如:
\u00A3
是英镑符号,£。\u20AC
是欧元符号,€。\u00A9
是版权符号,©。您可以像使用字符串中的任何其他字符一样使用这些 Unicode 字符文字。
例如,"15 \u00A3 per item"
将是字符串“15 £ per item”。
您可以将这样的字符串放入文本框中,就像使用任何其他字符串一样。
注意:您也可以从网站上复制 ( Ctrl+ C) 符号,例如Wikipedia(磅符号),然后将 ( Ctrl+ V) 直接粘贴到 C# 源代码文件中的字符串文字中。C# 源代码文件本机使用 Unicode。这种方法完全使您不必知道所需符号的四个十六进制数字。
为了与上面的示例平行,您可以制作与 simple 相同的字符串文字"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
值的范围,如下所示。
我不敢相信这在互联网上很难找到!
对于未来的开发人员,如果你有 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