| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Перерисовка Panel |
| Автор: Relrin 13.9.2012, 18:31 | ||
| Необходимо чтобы после того, как загнал все точки в список (List), их отрисовало на panel. Причем так, чтобы "не моргала" панель. Быть может подскажет кто, как решить эту проблемку? Код:
|
| Автор: diadiavova 13.9.2012, 19:54 |
| http://msdn.microsoft.com/ru-ru/library/3t7htc9c.aspx |
| Автор: Relrin 13.9.2012, 20:06 | ||||
Спасибо, помогло. Пока только одно не ясно - почему, рисует только одну точку из List'а, хотя я указываю больше чем одну. Причем, каждая задается случайными числами:
|
| Автор: diadiavova 13.9.2012, 20:37 | ||
Попробуй так
|
| Автор: Relrin 13.9.2012, 20:42 | ||||
Все так же. Рисует одну точку. Рисует по одной дальше, если я кнопку нажимаю поразово. |
| Автор: Relrin 13.9.2012, 20:49 | ||||||
Так все точки, которые я создаю (их количество я заранее задаю) помещаю в список (List<Points>), к которому потом выполняю код:
Но, отрисовывается, все равно одну точку. Не могу понять почему... |
| Автор: diadiavova 13.9.2012, 20:49 | ||
|
| Автор: Relrin 13.9.2012, 20:53 | ||||||
Я в обработчике кнопки писал даже так уже:
Просто сугубо для проверки и отчаяния. Все равно рисует одну точку. Пока не нажму кнопку - не отрисует вторую. Третий раз - третью и т.д. |
| Автор: diadiavova 13.9.2012, 20:53 | ||
А ты в этом цикле
|
| Автор: Relrin 13.9.2012, 20:56 | ||||
Должны же быть другие способы пройтись по списку и отрисовать, чем по N раз загонять одну и ту же точку. Мы же из списка не удаляем точки, а только добавляем, а затем считываем... |
| Автор: diadiavova 13.9.2012, 20:57 | ||
Как раз загонять одну и ту же не надо, а ты это делаешь. Тот код я у тебя скопировал |
| Автор: Relrin 13.9.2012, 21:02 | ||||
Одна и таже точка не загоняется. В кострукторе класса идет инициализация точки, ее положения, а затем запись в список, List. |
| Автор: diadiavova 13.9.2012, 21:04 | ||
Ну я что вижу в коде, о том и говорю. Ладно, я тебе попозже(возможно еще сегодня) выложу пример, а то так мы друг друга не поймем. |
| Автор: Relrin 13.9.2012, 21:08 | ||||
Я даже в отладчике прошелся по коду. Инициализация там верная. При foreach "извлекает" элементы, подает команды на отрисовку с этими точками. Но не отображает, почему-то. Хотя в том же битмапе, я сначала отрисовываю, как своего рода буффере. А затем даю команду на отрисовку в pictureBox. В итоге, почему-то рисует ОДНУ точку, а не N... Другими словами: - В списке есть все элементы, которые я проинициализировал ранее - В этом фрагменте, в foreach, элементы из списка считываются в obj корректно и хранят позицию его на форме - После первой "итерации", берет новый элемент, но его "не добавляет"/не отрисовывает на битмапе(скорей всего так), и не выводит на picturebox... Вопрос. Почему так? Почему после первой итерации не рисует на объекте, хотя из списка элемент считан? |
| Автор: diadiavova 13.9.2012, 21:58 |
| вот пример, там в меню нажимаешь пункт и все точки перерисовываются |