我一直在寻找几个小时,不能为我的生活弄清楚如何保持“一些问题?”从变成“?一些问题”......在消息框中,在文本框中,在字符串[]中。我试过用\?我试过附加文字+“?”和+“/?”没有什么工作!请帮助!
编辑:
这是在C#中。我写了很多代码,但问题很简单:
string questiontoask = "Some Question?";
MessageBox.Show(questiontoask); // this is just an example, I realize there are no buttons.
输出:?一些问题
或者:
textBox1.Lines = somestrarray;
输出:每行都带有任何标点符号“。,)(>< [] {} ...” 在字符串格式之前自动转换为标点符号...
这非常令人沮丧。
EDIT2:
在阅读了一些答案并进行了一些测试后,我发现我的文本框自动设置为RightToLeft = yes。在属性窗口中,它显示“no”,而在.Designer.cs中则没有设置。但这仍然没有解释它是如何在消息框中发生的。这发生在两个独立的解决方案中,但是当我创建一个新的错误时,没有错误!!!!!! WTF。
答案 0 :(得分: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)
这为您提供了两个选项:还可以创建一个示例项目,看看是否可以重现该问题,如果不能,则追踪差异。或者向我们提供更多相关信息/演示,以实际再现问题。
答案 1 :(得分:0)
检查您的Thread.CurrentUICulture
财产。如果它不是en-GB
或en-US
,那可能是罪魁祸首。
答案 2 :(得分:0)
Eurika !!在尝试了建议并进行进一步调试后,我找到了解决方案!或者更确切地说是问题......在某些地方,我将Main表单的RightToLeft属性设置为YES ...并且因为我的应用程序是基于Mdi的,所有我的mdichilren及其所有组件的RightToLeft属性都自动充当是,直到我手动更改每个。解决方案:将MainForm.RightToLeft设置为NO。现在进一步说明,我确实希望一些控件从右到左,但我想把标点放在右边...... @“逐字?”为我解决了这个问题。谢谢大家!