C#MessageBox不再显示整个文本字符串

时间:2009-08-20 07:46:46

标签: c# winforms messagebox

我正在尝试显示一条简单的消息,我过去已经做了好几千次,现在......消息框中没有显示完整的文本字符串。我没有做任何不同的事情,所以我没有看到问题。这是我的代码:

if (MessageBox.Show("The text in this file has changed. Do you want to save changes?",
    "TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{ //Do stuff 
} else { 
// Do stuff }

现在,当显示消息框时,唯一可见的文本是:

此文件中的文字已更改。

注意:是/否按钮是可见的,消息框看起来很正常,它看起来不会破坏或任何东西,所以我不知道为什么我不能在那里显示一个简单的大坝问题了!?..有人知道吗?你以前经历过这个吗?

由于

好的,这更好......(已编辑)

我刚刚更改了上述消息框文本的文本,现在它显示以下内容:

此文件中的文字已更改。你好吗

但问题中最重要的部分仍未显示......

9 个答案:

答案 0 :(得分:3)

要尝试的事情:
1)如果运行调试版本,请尝试编译并运行发行版本
2)尝试创建一个全新的项目并将代码复制到新项目并运行它(可能是项目设置已更改,然后您可以区分文件)
3)尝试禁用您拥有的任何防病毒软件。

答案 1 :(得分:2)

“改变”之间的空间。并且“Do”不会是一些奇怪的角色(比如说NULL),不是吗?尝试删除整个文本,然后手动再次键入。

<小时/> 嗯......只记得一些奇怪的老虫与McAffee杀毒软件和.NET,消息盒的全部内容都会消失。然而,这已经超过5年了......

也许尝试更新你的电脑?并且 - 你不会碰巧运行McAffee,是吗? :)

<小时/> 想法3:将您编译的.EXE和源文件发送给我们?
想法4:编译它,然后用Reflector打开它并检查它是如何编译的。编译器也有错误...

答案 2 :(得分:2)

你试过 - 只是为了确定 - 通过在前面添加一个@ -sign来逃避整个字符串?

像这样:


if (MessageBox.Show(@"The text in this file has changed. Do you want to save changes?",
    @"TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{ //Do stuff 
} else { 
// Do stuff }

答案 3 :(得分:2)

它奇怪/愚蠢的东西 - 它是时候通过愚蠢来回击

第一个问题 - 您的所有信息框都受到了影响吗?如果没有,那么这个案子就有问题了。如果他们都受到影响那么......我真的不知道该建议什么。更多咖啡?

最好的办法是尽可能减少问题。创建一个新消息框,仅输入当前文本(复制并粘贴)。不要设置任何其他参数并将其从if语句中取出

如果可行,则问题在于参数   - 慢慢添加参数直至其中断

如果没有,则问题出在文本上   - 删除文本并重新输入 - 那里可能有一个奇怪的字符 - 例如文字附近有MS Word ...   - 如果有效,那么你就是金色的   - 否则,逐字删除,直到它开始工作

我认为你会发现它真的很蠢

答案 4 :(得分:2)

您是否尝试将文本放入变量juste中以查看它是否有效?

string message = @"The text in this file has changed. Do you want to save changes?";
string title = "TextEditor - Confirmation";

if (MessageBox.Show,(message, title, MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes){ //Do stuff } else { // Do stuff }

答案 5 :(得分:1)

我也尝试了它似乎工作正常。 也许检查运行它的机器上的区域/语言设置?

form.Designer.cs中没有设置消息框的大小?

答案 6 :(得分:1)

您是否尝试过使用1表单和以下代码创建另一个解决方案 - 顺便说一下我的作品vs2008 winXP en-gb lang

using System;

using System.ComponentModel;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            if (MessageBox.Show("The text in this file has changed. Do you want to save changes?", "TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                MessageBox.Show("yes");
            }
            else
            {
                MessageBox.Show("no");
            }


        }
    }
}

答案 7 :(得分:1)

你可以在“改变”之后尝试换行吗?

答案 8 :(得分:-1)

我刚刚解决了这个问题。我正在使用Windows XP Home Edition,并且还使用Stardock的WindowBlinds来完善具有500年历史的WindowsXP界面。这在过去从未引起过任何问题,我多年来一直在使用WindowBlinds,并且还使用C#的东西大约一年半,这是WindowBlinds第一次引起任何问题。

只有部分文本在MessageBox中显示的原因仍然是一个谜,但是当我决定尝试关闭WindowBlinds并再次应用标准XP主题时...所有MessageBox在C#中正常工作。< / p>

<小时/> 谢谢大家的好建议,我们非常感谢。:o)

Jason Pezzimenti