C#:自定义编号格式为左侧语言

时间:2017-05-12 15:49:21

标签: c# .net winforms right-to-left

我正在尝试在从右到左文本框中编写带有自定义格式的数字(实际上在列表视图中,但无论如何)。这是代码:

NumberFormatInfo nfi = (NumberFormatInfo)
            CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
textbox1.Text = (18700).ToString("#,###",nfi);

而不是18 700我得到700 18。我能解决这个问题(得到所需的18 700)而不是在数字到字符串转换后操纵字符串吗?

2 个答案:

答案 0 :(得分:2)

使用no-break space而不是空格。它的字符是C#中的(char)0x00A0'\u00A0'。您也可以使用 Alt + 255 键盘输入。

所以你可以这样设置NumberGroupSeparator

nfi.NumberGroupSeparator = "\u00A0";

答案 1 :(得分:0)

我认为你可以做一个小技巧:

textBox1.Text = TurnString((18700).ToString("#,###", nfi));

public static string TurnString(string value)
{
    Stack<string> stack = new Stack<string>();
    foreach(string a in value.Split(' '))
    {
        stack.Push(a);
    }
    string result = string.Empty;
    while(stack.Count>0)
    {
        result += stack.Pop()+' ';
    }
    return result;
}