Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2011, 07:16   #1
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию Graphis и pitureBox

Всем здрасти у меня вот атакой вопрос я например по нажатию кнопки создаю Graphics вытворяю с ним все что нужно а теперь как этот Graphics перенести на pitureBox?
mrCloud вне форума Ответить с цитированием
Старый 24.06.2011, 07:24   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Создать Graphics на PictureBox'е и вытворить там аналогичное... Или скопировать прошлые "вытворения"...
Spawn™Production® вне форума Ответить с цитированием
Старый 24.06.2011, 07:53   #3
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

первый ввариант не подходит а 2ой вариант о том и вопрос >_> как так сделать

Последний раз редактировалось mrCloud; 24.06.2011 в 08:00.
mrCloud вне форума Ответить с цитированием
Старый 24.06.2011, 09:07   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Начнем с того как ты создаешь Graphics? Почему ты этот Graphics не создаешь от picturebox сразу? Код выкладывай, телепать мы не умеем.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 24.06.2011, 09:17   #5
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

глобалная переменая
Код:
Graphics g;
и код из обработчика
Код:
g = pictureBox1.CreateGraphics();
                Pen nPen = new Pen(Color.Red);
                float x = pictureBox1.Width / 2;
                float y = pictureBox1.Height / 2;
                float x2 = 0;
                float y2 = 0;
                float x3 = 0;
                float y3 = 0;
                listView2.Items.Clear();
                for (int i = 0; i < region[listView1.SelectedItems[0].Index].Ccount; i++)
                {
                    listView2.Items.Add((i + 1).ToString());
                    x2 = region[listView1.SelectedItems[0].Index].point[i].a/5;
                    y2 = region[listView1.SelectedItems[0].Index].point[i].c/8;
                    if (i == region[listView1.SelectedItems[0].Index].Ccount - 1)
                    {
                        x3 = region[listView1.SelectedItems[0].Index].point[0].a/5;
                        y3 = region[listView1.SelectedItems[0].Index].point[0].c/8;
                    }
                    else
                    {
                    x3 = region[listView1.SelectedItems[0].Index].point[i+1].a/5;
                    y3 = region[listView1.SelectedItems[0].Index].point[i+1].c/8;
                    }
                    g.DrawLine(nPen, x2, y2, x3, y3);
                }
                pictureBox1.Refresh();
mrCloud вне форума Ответить с цитированием
Старый 24.06.2011, 10:12   #6
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Попробуй вместо глобального Graphics сделать глобальный Bitmap bmp и рисовать вот так:
Код:
      bmp=new Bitmap(pictureBox1.Size.Width, pictureBox1.Size.Height);
                Graphics g = Graphics.FromImage(bmp);
                Pen nPen = new Pen(Color.Red);
                float x = pictureBox1.Width / 2;
                float y = pictureBox1.Height / 2;
                float x2 = 0;
                float y2 = 0;
                float x3 = 0;
                float y3 = 0;
                listView2.Items.Clear();
                for (int i = 0; i < region[listView1.SelectedItems[0].Index].Ccount; i++)
                {
                    listView2.Items.Add((i + 1).ToString());
                    x2 = region[listView1.SelectedItems[0].Index].point[i].a/5;
                    y2 = region[listView1.SelectedItems[0].Index].point[i].c/8;
                    if (i == region[listView1.SelectedItems[0].Index].Ccount - 1)
                    {
                        x3 = region[listView1.SelectedItems[0].Index].point[0].a/5;
                        y3 = region[listView1.SelectedItems[0].Index].point[0].c/8;
                    }
                    else
                    {
                    x3 = region[listView1.SelectedItems[0].Index].point[i+1].a/5;
                    y3 = region[listView1.SelectedItems[0].Index].point[i+1].c/8;
                    }
                    g.DrawLine(nPen, x2, y2, x3, y3);
                }
                pictureBox1.Image = bmp;
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 24.06.2011, 10:18   #7
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

почемуто после этого увеличиваеться изображение
mrCloud вне форума Ответить с цитированием
Старый 24.06.2011, 10:30   #8
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Цитата:
почемуто после этого увеличиваеться изображение
Интересно каким образом... ведь масштаб не менялся. Посмотри что у тебя с pictureBox1.SizeMode, должен быть Normal.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 24.06.2011, 10:44   #9
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

да стоит нормал
mrCloud вне форума Ответить с цитированием
Старый 24.06.2011, 10:50   #10
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

тогда ищи ошибку в другом месте, потому что если до этого у тебя все рисовалось норм, то и сейчас должно быть норм. Проверь событие Paint, если вышеописанная процедура не в нем, тогда в Paint достаточно написать
Код:
pictureBox1.Image = bmp;
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц