Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916

перенаправление OnPaint

12.11.2009, 14:29. Показов 4028. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет, у меня возник вопрос как перенаправить OnPaint прорисовку с формы на другой элемент управления к примеру панель или пикчербокс?, жду ответов)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2009, 14:29
Ответы с готовыми решениями:

ListView OnDraw + OnPaint
Как сделать что б работали оба переопредиления? protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e); ...

Исключение NullReferenceException в DataGridView.OnPaint
Доброго времени суток. Имеется основная форма и дочерня. На основной форме выполняется некоторый алгоритм, и прохождении которого на...

Base.OnPaint и производительность приложения
Делаю кастом кнопку, переопределяю метод OnPaint, в котором рисую нужный бэкграунд, текст и картинку. Возник такой вопрос, сильно ли...

5
 Аватар для Неумейка
12 / 11 / 4
Регистрация: 14.02.2009
Сообщений: 89
13.11.2009, 17:47
Я не очень понял вопрос но, насколько мне известно, событие onPaint есть у каждого визуального элемента.
0
 Аватар для Старик
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 8
14.11.2009, 03:00
вобщето OnPaint перерисовывает все.
может проблема с перерисовкой если форма чемто временно закрывается
например другим окном или изменяет размер
привожу пример как исправить это

C#
1
2
3
4
5
6
7
8
protected override void OnPaint(PaintEventArgs e)//вывод графики
        {
           base.OnPaint(e);
                
            Graphics dc = e.Graphics;               //переносим в видео память окна
            dc.ScaleTransform(1.0f, 1.0f);          //коректируем при изменении окна
            dc.TranslateTransform(0, 0);
        }
Добавлено через 27 минут
Кстати есть нижка C# 2008 для проффесионалов глава по работе с графикой сделана на компакт диске я думаю ее можно найти 33_C#2008-CD.pdf там есть все и подробно.
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.11.2009, 13:57  [ТС]
да вопрос неправильно задал я, ятут разбирался мне нужно просто организовать двойную буферизацию для панели, а у неё задать
C#
1
this.DoubleBuffered = true
не получаеться, выходит ошибка(Ошибка 1 Доступ к защищенному члену "System.Windows.Forms.Control.DoubleBuff ered" через квалификатор типа "System.Windows.Forms.Panel" невозможен; квалификатор должен иметь тип "RelePlace.Form1" (или производный от него тип) D:\Visual Studio 2008\Projects\RelePlace\RelePlace\Form1. cs 79 20 RelePlace
)

Добавлено через 13 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
namespace RelePlace
{ 
    public partial class Form1 : Form
    {      
        //наша форма
        public Form1(object sender,EventArgs e)
        {
            InitializeComponent();
            this.BackColor = Color.White;
            рассчитать(sender,e);
            [COLOR="Red"]panel2.DoubleBuffered = true[/COLOR];
            
        }}}
в таком коде выдает ошибку эту не получилось исправить

Добавлено через 1 час 35 минут
добавил
C#
1
2
3
4
5
6
7
8
public class DBpanel:Panel
    {
        public DBpanel()
    {
        DoubleBuffered = true;
    }
 
    }
и изменил в дизайнере
C#
1
this.panel2 = new System.Windows.Forms.Panel();
на
C#
1
panel2=new DBpanel();
, но теперь рисуетьсян а 1 певрое мнгновение и дальше белое все, незнай чо такое

Добавлено через 7 минут
C#
1
2
3
4
5
6
// Form1
            // 
       
            this.Controls.Add(this.panel2);
 
               //
эту строку в дизайнере как переделать кажеться из за нее не переисовывает номрально только 1 кадр дальше пустота
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
16.11.2009, 14:02
А зачем двойная буферизация для панели?
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
16.11.2009, 15:28  [ТС]
чтобы не мерцала при отрисовке динамической, кароче я поставил двойную буферизацию на панели и видимо как то неправильно рабоатет ето, есть ли какие то ньюансы,чем отличаеться двойная буферизация панели и формы?

Добавлено через 37 минут
а все сделал, всем спасибо,аргумент PaintEventArgs забыл поменятьв методах прорисовки, но почему он первый раз рисовал тогда- странно,-вобще не должен был рисовать на паенли , тока на форме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2009, 15:28
Помогаю со студенческими работами здесь

Как в onPaint нарисовать шахматную доску?
Нужно нарисовать шахматную доску для шахмат, которая в будущем должна полностью функционировать под шахматы. Рисование шахматной доски...

Передать в метод OnPaint параметр PaintEventArgs e
как мне передать в митод OnPaint параметр PaintEventArgs e? часть нужного кода void DoWork() { ...

Отрисовка с использованием Graphics.DrawString, метод OnPaint
Есть вот такой метод protected override void OnPaint(PaintEventArgs e) { x = 1; y = 1; ...

UserControl. Дочерние объекты перерисовываются после OnPaint
Всех с таки наступившим Новым годом и не наступившим Концом света :) Очередной удар головой об механизм отрисовки в .NET. Нужен...

Как создать метод OnPaint для PictureBox-а?
Как создать метод OnPaint для PictureBox-а из родительского контролла? Т.е. прямо в MainForm (не в InitializeComponent)


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru