0

我一直在寻找几个小时,但我一生都无法弄清楚如何保持“一些问题?” 从变成“?Some question”......在消息框,文本框,字符串[]中。我试过使用 \? 我试过附加文本+“?” 和 + "/?" 没有任何工作!请帮忙!

编辑:

这是在 C# 中。我写了很多代码,但问题很简单:

string questiontoask = "Some Question?";
MessageBox.Show(questiontoask); // this is just an example, I realize there are no buttons.

输出:?一些问题

或者:

textBox1.Lines = somestrarray;

输出:带有任何标点符号“. , ) ( > < [ ] { } ...” 的每一行都会在字符串格式之前自动转换为标点符号...

这非常令人沮丧。

编辑2:

在阅读了一些答案并进行了一些测试后,我发现我的文本框自动设置为 RightToLeft = yes。在属性窗口中显示“否”,而在 .Designer.cs 中没有设置任何内容。但这仍然不能解释它是如何在消息框中发生的。这发生在两个单独的解决方案中,但是当我制作一个新的解决方案时,没有错误!!!!!!wtf。

4

3 回答 3

0

我做了一个非常简单的表单,只包含一个触发您的示例的按钮:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        String questiontoask = "Some Question?";
        MessageBox.Show(questiontoask);
    }
}

确实给出了预期的结果,即Some Question?- 这个问题似乎存在于您的项目中,而不是 C#/.NET。(尝试使用 4.0 和 4.5)

这为您提供了两个选择:还创建一个示例项目,看看您是否可以重现该问题,如果不能,则追踪差异。或者向我们提供更多相关信息/实际重现问题的演示。

于 2013-08-11T17:01:51.237 回答
0

检查你的Thread.CurrentUICulture财产。如果不是en-GBor en-US,那可能是罪魁祸首。

于 2013-08-11T17:18:34.200 回答
0

尤里卡!!在尝试了建议并进行了进一步调试后,我找到了解决方案!或者更确切地说是问题...在某处我将主窗体的 RightToLeft 属性设置为 YES... 由于我的应用程序是基于 Mdi 的,因此我的所有 mdichilren 及其所有组件的 RightToLeft 属性都自动充当是的,直到我手动更改每个。解决方案:将 MainForm.RightToLeft 设置为 NO。现在进一步说明,我确实希望一些控件从右到左,但我想把标点符号放在右边......@“逐字?” 为我解决了这个问题。谢谢大家!

于 2013-08-14T19:41:32.290 回答