в строке состояния появляется большой красный крест

У меня есть программа, содержащая строку состояния (ToolStripStatusLabel), которая во время тестирования однажды выдала исключение «индекс вне диапазона» и сказала мне, что я могу либо продолжить, либо выйти. Я нажал «Продолжить», и строка состояния превратилась в пустой элемент управления с красным крестом.

Я думаю, что это может быть связано с этим вопросом здесь: проблема Красного Креста в MenuStrip и ToolStrip

Но я не понимаю ответа и не знаю, в чем причина, так как я действительно ничего не делаю с полосой состояния, кроме как присваиваю текст какому-то сообщению об ошибке или уведомляю, чтобы сообщить пользователю, что происходит с программой.

Любая информация очень ценится. Это случилось только один раз, но в следующий раз меня это будет беспокоить, если я не знаю, почему это произошло.

Я использую .NET 3.5 SP1 С#


person tf.rz    schedule 10.08.2011    source источник


Ответы (1)


Ваша проблема в том, что вы вызываете своим необработанным IndexOutOfRangeException поврежденное состояние в ToolStrip. Поэтому он не может правильно рисовать себя.

На всякий случай проверьте свой код, который устанавливает что-то из StatusStrip или ToolStripStatusLabel, что может вызвать IndexOutOfRangeException.

person Skomski    schedule 10.08.2011
comment
Привет! Я понял, что ошибка на самом деле является ошибкой межпоточности, которая делает панель инструментов бесполезной, что вызывает ситуацию с красным крестиком. Вы знаете, как я могу это исправить? =) Спасибо Скомски! - person tf.rz; 11.08.2011
comment
Обязательно запустите свой код для настройки элементов в панели инструментов в UIThread — msdn.microsoft. com/en-us/library/ms171728.aspx - person Skomski; 11.08.2011