Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386

Отрисовка изображения AutoScroll

19.10.2018, 17:38. Показов 1295. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня на форме есть панель, у панели включено свойство AutoScroll.
В обработчике события Paint панели происходит отрисовка изображения на панель.
Однако при скроле панели появляется полоска заднего фона в той стороне панели, в которую происходит прокрутка.
Подскажите, пожалуйста, можно ли как-то это исправить?
Код обработчика события Paint панели:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void Canvas_Paint(object sender, PaintEventArgs e)
 {
        RedrowCanvas(-Canvas.HorizontalScroll.Value, -Canvas.VerticalScroll.Value);
 }
 
 private void RedrowCanvas(int x, int y)
 {
       Graphics g1 = Canvas.CreateGraphics();
       Bitmap b1 = new Bitmap(Canvas.Width, Canvas.Height);
       Graphics g = Graphics.FromImage(b1);
       g.Clear(BackgroundColor);
       g.DrawImage(SaveImage, new Point(x, y));
       g1.DrawImage(b1, new Point(0, 0));
       b1.Dispose();
       g.Dispose();
       g1.Dispose();
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2018, 17:38
Ответы с готовыми решениями:

Отрисовка изображения в определённой точке
Есть задача: отрисовать картинку из ресурсов в PictureBox: При использовании такого кода: Image img = Resources.Tile_Dirt; ...

Отрисовка изображения поверх собственной кнопки
Нашел и отредактировал класс для кнопки с закругленными углами: public class RoundButton : Control { ...

Отрисовка изображения в в определенных координатах на PictureBox
Всем доброго времени суток. Такая вот делема: на имеющийся на форме picturebox необходимо загрузить несколько изображений, при чем каждое...

7
Заблокирован
20.10.2018, 09:31
Цитата Сообщение от HitGirl Посмотреть сообщение
полоска заднего фона в той стороне панели, в которую происходит прокрутка.
Принудительное Invalidate() не помогает?


Не по теме:

C#
1
2
3
Graphics g1 = Canvas.CreateGraphics();
...
g1.Dispose();
ипользуйте, пожалуйста using в таких случаях - это мое ИМХО и добрый совет

0
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386
20.10.2018, 09:47  [ТС]
Цитата Сообщение от Моя говорить Посмотреть сообщение
Invalidate()
Поместил Canvas.Invalidate() в обработчик события Paint. На панели началось мерцание, программа зависла.
Заменил dispose на using.
0
Заблокирован
20.10.2018, 10:56
Цитата Сообщение от HitGirl Посмотреть сообщение
Поместил Canvas.Invalidate() в обработчик события Paint. На панели началось мерцание, программа зависла.
Ошибка многих начинающих, кстати.

(On_)Paint - событие возникающее при перерисовке контрола(оно вызывается Виндой, когда она посчитает за нужное перерисовать).
контрол.Invalidate() - мы принудительно заставляем контрол перерисовываться.

Вы в вашем случае поставили принудительную прорисовку в обработчик событий от винды, собственно, и возник badloсk
0
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386
26.10.2018, 18:21  [ТС]
Актуально
0
Заблокирован
27.10.2018, 19:06
Цитата Сообщение от HitGirl Посмотреть сообщение
Актуально
Что нужно сделать?
0
23 / 10 / 1
Регистрация: 08.10.2015
Сообщений: 386
27.10.2018, 19:11  [ТС]
Цитата Сообщение от Моя говорить Посмотреть сообщение
Что нужно сделать?
Всё тоже самое, проблема не решена.
0
Заблокирован
27.10.2018, 19:56
Цитата Сообщение от HitGirl Посмотреть сообщение
Всё тоже самое, проблема не решена.
Извините, я здесь? возбухал про то что некие готовы сделать за не деньги просто простой вопрос.

Добавлено через 17 минут
Значит не решена, если я не могу подредактировать свое прошлое сообщение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2018, 19:56
Помогаю со студенческими работами здесь

Отрисовка изображения при открытии формы
Вопрос очень простой, но не понятный для меня. Приведу простейший пример using System; using System.Collections.Generic; using...

Отрисовка изображения попиксельно из бинарного файла
Здравствуйте! Очень нужна ваша помощь, мучаюсь с этой отрисовкой уже не первый день - всё не так срабатывает. Имеется текстовый файл, в...

Отрисовка изображения поверх канвы (изображения) и вращение изображения
Здравствуйте. Столкнулся с 2умя проблемами при работе с изображениями средствами C++ Builder. Хочу сделать одну интересную штуку, но...

Отрисовка изображения
Возникла проблема с программой-фреймом. Головной менеджер в ней-CardLayout, содержащий несколько панелей. На одной из них с помощью...

Отрисовка изображения в потоке
import java.applet.*; import java.awt.*; import java.net.*; import java.util.*; class MainWndFrame extends Frame { // класс окна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru