Вопрос по c#, multithreading, toolstrip, menustrip – Проблема «Красного Креста» на MenuStrip и ToolStrip

4

У меня есть часть программного обеспечения, которая отлично работала на многих машинах, хотя на одной машине иногда возникает проблема, и MenuStrip и ToolStrip отображаются в виде пустого белого фона с красным крестиком над ним, как пользовательский элемент управления будет, если вы создали нулевой объект. Это не происходит во время отладки, и я не знаю, как заставить проблему повторно возникать, но это случается. Мне было интересно, если бы кто-нибудь знал, в чем может быть проблема?

Будет ли это версия .NET Framework?

Спасибо

Ваш Ответ

5   ответов
2

Исключение из нехватки памяти мне.

Edit: Что иногда может привести кSystem.InvalidOperationException: BufferedGraphicsContext

1

1000, на котором есть наши продукты. На этом компьютере я вижу, что программа .NET 3.5 иногда показывает красный X на своей сетке данных. И еще одна гораздо более простая программа .NET 2.0 получила красный крестик в меню menu. У меня есть только исходный код для более простой программы, но я могу сказать, что вообще нет никакого пользовательского кода, который влияет на этот компонент. Никаких кросс-нить, потому что ничего не обновляет Его содержимое задается во время разработки, причем один элемент добавляется к нему при загрузке программы. Отказ Red X произошел после загрузки программы.

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

Если это не так, то будут приветствоваться любые рекомендации по системным частям, которые совместно используются в .NET 2.0 и .NET 3.5.

Обновление: пользователь с проблемой удалил компьютер и заменил его (который решил проблему)

3

когда существует проблема GDI + («Красный X смерти»). Вы делаете какой-либо пользовательский рисунок вOnPaint? Или, возможно, имеется графический ресурс или глиф, который поврежден или неправильно утилизирован.

Edit: Я перечитал ваш вопрос. Кажется, у вас есть это только на одной из машин. Я немного погуглил по этому поводу и наткнулся наэта старая нить, Пост внизу предполагает, что может быть проблема с отключенной виртуальной памятью:

We did manage to solve this - we were seeing the problem on a device running XP embedded. The XPe image developer had turned off Virtual Memory and as soon as we turned it on the problem went away. I believe it is just a symptom of the system running out of memory to display the graphics (maybe particularly if you use a lot of double buffering)

Надеюсь, это поможет.

Извините, я неправильно прочитал ваш вопрос в первый раз.
Нет, я не делаю никаких пользовательских чертежей, просто использую их в качестве стандарта, я понимаю, что вы имеете в виду, поскольку наткнулся на это, когда я создавал пользовательские элементы управления в прошлом. В любом случае, спасибо за вашу помощь! ThePower
Спасибо за обновление и информацию ThePower
1

Убедитесь, что вы используете Invoke при доступе к элементам управления и / или событиям запуска из потока, который не является основным потоком пользовательского интерфейса.

1

отличного от потока GUI? Объедините операцию перекрестного потока с обработчиком исключений, который поглотил все, и у нас было приложение, которое вы описали (на элементе управления сеткой, а не на панели меню) в приложении, которое я поддерживал.

Похожие вопросы