2
示例代码MessageBox.Show行为来说明:有很多线路
private void button2_Click(object sender, EventArgs e)
{
const int numLines = 3000;
StringBuilder sb = new StringBuilder();
for(int i=0; i < numLines; i++)
{
sb.AppendFormat("Hello world {0}\r\n", i);
}
MessageBox.Show(this, sb.ToString(), "Error");
}
现在,我意识到这可能不是一个好主意,试图显示一个MessageBox太多行。但是当numLines是“大”时,我对它的预期行为很好奇。例如在我的Windows 10机器上,如果numLines是3000,则根本不显示消息框,并且必须从任务栏中删除该程序。任何人都可以对此有所了解吗?
编辑:感谢所有的答复。行为看起来相当随机。
例如如果numLines = 2175,消息框显示ok。 如果numLines = 2176,消息框不会出现,并且程序变得没有响应。按下ALT-F4会使程序再次响应(就好像您刚刚关闭了一个您无法看到的模式对话框)。 如果numLines = 4208,只有标题为“错误”(无正文)一个消息框,可以在屏幕这样的底部可以看出:
2175是我所要做的最多行数,不管输入字符串。 – Inisheer
@Inisheer - 谢谢。我也是。如果我使用2176,则没有窗口显示,并且该应用程序似乎表现得好像屏幕上有一个不可见的模式对话框(无响应)。 –