Пример кода для иллюстрации: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, сообщение не отображается вообще, и вы должны убить программу из панели задач. Может кто-нибудь пролить некоторый свет на это ?
EDIT: благодаря всем ответам. Поведение кажется довольно случайным.
например. если numLines = 2175, окно сообщения отображается в порядке. , если numLines = 2176, окно сообщения не появляется, и программа перестает отвечать на запросы. Нажатие ALT-F4 снова заставляет программу реагировать (как будто вы только что закрыли модальное диалоговое окно, которое вы не могли видеть). если numLines = 4208, окно с только названием «Error» (и без тела) можно увидеть в нижней части экрана, как это:
2175 - это самое большое количество линий, которые мои шахты будут делать независимо от входной строки. – Inisheer
@ Inisheer - спасибо. Мой тоже. Если я использую 2176, окно не отображается, и приложение, похоже, ведет себя так, как будто на экране был невидимый модальный диалог (не отвечает). –