我正在尝试显示一条简单的消息,我过去已经做了好几千次,现在......消息框中没有显示完整的文本字符串。我没有做任何不同的事情,所以我没有看到问题。这是我的代码:
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 }
现在,当显示消息框时,唯一可见的文本是:
此文件中的文字已更改。
注意:是/否按钮是可见的,消息框看起来很正常,它看起来不会破坏或任何东西,所以我不知道为什么我不能在那里显示一个简单的大坝问题了!?..有人知道吗?你以前经历过这个吗?
由于
此文件中的文字已更改。你好吗
但问题中最重要的部分仍未显示......
答案 0 :(得分:3)
要尝试的事情:
1)如果运行调试版本,请尝试编译并运行发行版本
2)尝试创建一个全新的项目并将代码复制到新项目并运行它(可能是项目设置已更改,然后您可以区分文件)
3)尝试禁用您拥有的任何防病毒软件。
答案 1 :(得分:2)
“改变”之间的空间。并且“Do”不会是一些奇怪的角色(比如说NULL),不是吗?尝试删除整个文本,然后手动再次键入。
<小时/> 嗯......只记得一些奇怪的老虫与McAffee杀毒软件和.NET,消息盒的全部内容都会消失。然而,这已经超过5年了......
也许尝试更新你的电脑?并且 - 你不会碰巧运行McAffee,是吗? :)
<小时/> 想法3:将您编译的.EXE和源文件发送给我们?
答案 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