如何在文本框中插入符号(英镑、欧元、版权)
Posted
技术标签:
【中文标题】如何在文本框中插入符号(英镑、欧元、版权)【英文标题】:How to insert a Symbol (Pound, Euro, Copyright) into a Textbox 【发布时间】:2013-09-08 18:40:47 【问题描述】:我可以使用带有数字键盘的 Alt 键来键入符号,但是如何以编程方式将符号(英镑、欧元、版权)插入文本框?
我有一个配置屏幕,所以我需要动态创建 \uXXXX's。
【问题讨论】:
【参考方案1】:在 C# 中,Unicode 字符文字 \uXXXX
(其中 X
是十六进制字符)将允许您指定 Unicode 字符。例如:
\u00A3
是英镑符号,£。
\u20AC
是欧元符号,€。
\u00A9
是版权符号,©。
您可以像使用字符串中的任何其他字符一样使用这些 Unicode 字符文字。
例如,"15 \u00A3 per item"
将是字符串“15 £ per item”。
您可以像使用任何其他字符串一样将这样的字符串放入文本框中。
注意:您也可以从网站上复制 (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。
【讨论】:
让我试试这个。不,我需要动态创建它\uXXXX。当我尝试这个时:symbolSyntax = "\u" + symbolSyntax
它需要我逃离 \u
@JeremyThompson 你真的想像那样动态地从符号十六进制创建角色吗?如果是这样,我可以更新答案以包含它。
@JeremyThompson - 问题中没有提到从十六进制动态创建符号,如果您下次想更清楚的话。
我没时间测试,不过试试:(Char)Convert.ToInt32("20AC",16)
感谢你们的帮助,我相信这对以后的其他人会有所帮助【参考方案2】:
我不敢相信这在互联网上很难找到!
对于未来的开发人员,如果你有 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
【讨论】:
以上是关于如何在文本框中插入符号(英镑、欧元、版权)的主要内容,如果未能解决你的问题,请参考以下文章