如何在文本框中插入符号(英镑、欧元、版权)

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

【讨论】:

以上是关于如何在文本框中插入符号(英镑、欧元、版权)的主要内容,如果未能解决你的问题,请参考以下文章

如何选择文本框中的文本,插入符号位于选择的开头?

在富文本框中定位列表框

在 html 文本框中设置键盘插入符号位置

如何使用命令按钮在文本框中的现有文本中插入新文本?

将插入符号/光标位置设置为字符串值 WPF 文本框的末尾

python如何在文本框中输入信息插入到数据库