在右到左文本框中编写阿拉伯数字

时间:2014-02-10 09:41:51

标签: c# winforms

我有Form本地化为阿拉伯语 - 沙特阿拉伯(ar-SA),表单RightToLeft Property设置为trueRightToLeft Layout也设置为{{1} ,现在我的问题是客户收到这样的数字:

773/17/26,但是如您所知,阿拉伯语是从右到左书写的,所以当用户读取此号码或尝试输入时,他会从 26 中读取数字,不是 773 ,所以他在键盘上输入的内容是:26/17/773,但实际数字是773/17/26。

现在,我找不到在.NET Windows窗体文本框中执行此操作的方法。

作为参考,您可以尝试在Microsoft Word中执行此操作;在Word => Word Options =>高级=>显示文档内容=>将数字设置为上下文。

当键盘输入设置为阿拉伯语时,您可以用阿拉伯语和所需格式写任何数字,我的意思是光标总是在Word中从右向左移动。

现在,这是我无法以我的形式做的事情;我希望文本框的光标始终保持从右向左移动,而不是从左向右移动。

总而言之,用户将分别按下键26/17/773,但我需要在文本框中看到的是733/17/26

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

顺便说一句,我得到了一个帮助,这就是答案:

 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '/')
            {
                textBox3.SelectedText +=" ";
            }
        }

它就像我想要的那样工作。

答案 1 :(得分:1)

private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
        if (e.KeyChar == '/')
        {
            e.Handled = true;
            textBox3.Text = "/" + textBox3.Text;
        }
}