Я занимаюсь разработкой карточной игры. Я представил карты с классом PictureBox. У меня есть игра, в которой игроки кладут карты друг на друга, одну за другой. Z-индекс всех этих карт различен, и когда карта помещается сверху, я даю ей верхний z-индекс с этим кодом:
PictureBox cardPictureBox = move.Card.CardPictureBox;
if (cardPictureBox.InvokeRequired)
cardPictureBox.Invoke(new MethodInvoker(cardPictureBox.BringToFront));
Этот код работает нормально, и все карты выводятся на передний план, когда они должны. У меня проблема, когда эта игра заканчивается. Именно тогда мне нужно вернуть объекты PictureBox на прежнее место. Я положил их обратно, но теперь они не заказаны, как я заказал их в Designer. Я должен изменить их z-индексы. Я делаю это с тем же кодом, но в цикле, где я делаю одно и то же для каждой карты.
Программа не выдает исключение, а просто зависает, и все тут!?!?!
Кто-нибудь сталкивался с этой проблемой, и есть ли у нее ответ?
Как сделать безопасное межпотоковое изменение z-индекса PictureBox без зависания моей программы?
Заранее спасибо