Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在文本框中插入符号(英镑、欧元、版权)_C#_.net_Vb.net_Symbols - Fatal编程技术网

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

C# 如何在文本框中插入符号(英镑、欧元、版权),c#,.net,vb.net,symbols,C#,.net,Vb.net,Symbols,我可以在数字键盘上使用Alt键来输入符号,但如何通过编程将符号(英镑、欧元、版权)插入文本框 我有一个配置屏幕,因此需要动态创建\uxxx 我不敢相信这在互联网上很难找到 对于未来的开发人员来说,如果您有unicode字符,那么很容易做到。例如: C#: var selectionIndex = txt.SelectionStart; string copyrightUnicode = "00A9"; int value = int.Parse(copyrightUnicode, System

我可以在数字键盘上使用Alt键来输入符号,但如何通过编程将符号(英镑、欧元、版权)插入文本框

我有一个配置屏幕,因此需要动态创建\uxxx


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

对于未来的开发人员来说,如果您有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
在C#中,Unicode字符文字
\uxxx
,其中
X
是十六进制字符,将允许您指定Unicode字符。例如:

  • \u00A3
    是英镑符号
  • \u20AC
    是欧元符号,欧元
  • \u00A9
    是版权符号,)
您可以像字符串中的任何其他字符一样使用这些Unicode字符文本

例如,
“每项15\u00A3”
将是字符串“每项15英镑”

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

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

为了与上面的示例并行,您可以将相同的字符串文字设置为“每项15英镑”

编辑:如果要从其十六进制字符串动态创建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
值范围,如图所示。

让我试试这个。不,我需要动态创建它\uxxx。当我尝试此操作时:
symbolSyntax=“\u”+symbolSyntax
它需要我退出\u@JeremyThompson你真的想这样动态地从十六进制符号创建角色吗?如果是这样的话,我可以更新答案,将其也包括在内。@JeremyThompson-问题中没有问到从十六进制动态创建符号,如果这是你想要的,下次会更清楚。我没有时间测试,但请尝试:(Char)Convert.ToInt32(“20AC”,16)感谢你们的帮助,我相信这将在将来帮助其他人