Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование по нажатию кнопке, Событие по нажатию кнопки 
:(
    Опции темы
Demogargon
Дата 11.3.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2008

Репутация: нет
Всего: 1



Хотел по нажатию кнопки перерисовывать изображение, но ничего не получилось. Почему?

Код

namespace Paint
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            CenterToScreen();
        }
        

        private void OnPaint(object sender, PaintEventArgs e)
        {
            string imagepath = Directory.GetCurrentDirectory() + @"\File0041.jpg";
            if (File.Exists(imagepath))
            {
                Image image_gu = Image.FromFile(imagepath);
                Graphics img_gu = Graphics.FromImage(image_gu);
                img_gu.FillEllipse(Brushes.DarkBlue, 50, 50, 150, 150);
                Graphics g = e.Graphics;
                g.DrawImage(image_gu, new PointF(0.0F, 0.0F));
                //Dispose();
            }
            else
            {
                MessageBox.Show("нет файла в" +Directory.GetCurrentDirectory(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void B_RePaint_Click(object sender, EventArgs e)
        {
            pictureBox1.Paint += new PaintEventHandler(OnPaint);
            Invalidate();
        }


    }
}



--------------------
Дело стоит рядом со стоящим, идет за идущим, творит с творящим. Оно следует за нами подобно тени.
PM MAIL ICQ   Вверх
-Mikle-
Дата 11.3.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Попробуйте так:

Код

            pictureBox1.Paint += new PaintEventHandler(OnPaint);
            pictureBox1.Invalidate();



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Demogargon
Дата 11.3.2009, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2008

Репутация: нет
Всего: 1



Ничего не изменилось.
--------------------
Дело стоит рядом со стоящим, идет за идущим, творит с творящим. Оно следует за нами подобно тени.
PM MAIL ICQ   Вверх
PaZ1T1V
Дата 11.3.2009, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 26.2.2008
Где: Багдад )

Репутация: нет
Всего: нет



to Demogargon попробуйте в конце обработчика собыьтия онпаинт написать так
Код

      g = pictureBox1.CreateGraphics();
      g.DrawImage(pictureBox1.Image, 0, 0);

--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Demogargon
Дата 12.3.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2008

Репутация: нет
Всего: 1



PaZ1T1V, дело в том, что я это событие хочу использовать не только для pictureBox1. Мне нужно что бы это событие было универсальным. И работало и на pictureBox1, и на pictureBox2 и на panel1
--------------------
Дело стоит рядом со стоящим, идет за идущим, творит с творящим. Оно следует за нами подобно тени.
PM MAIL ICQ   Вверх
diadiavova
Дата 12.3.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Demogargon, испытал твой код - у меня всё работает. Ищи ошибку в другом месте.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Demogargon
Дата 17.3.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2008

Репутация: нет
Всего: 1



Нет, не перересовывает от у меня по нажатию кнопки.... 
--------------------
Дело стоит рядом со стоящим, идет за идущим, творит с творящим. Оно следует за нами подобно тени.
PM MAIL ICQ   Вверх
diadiavova
Дата 17.3.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Вот пример

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  DrawPB.rar 174,35 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Certain
Дата 19.3.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: 1
Всего: 4



Цитата(Demogargon @ 12.3.2009,  07:58)
PaZ1T1V, дело в том, что я это событие хочу использовать не только для pictureBox1. Мне нужно что бы это событие было универсальным. И работало и на pictureBox1, и на pictureBox2 и на panel1

на скорую руку, но все же

Код

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using System.IO;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        private Image image_gu = null;
        private List<Control> controls;
        
        public Form1()
        {
            InitializeComponent();

            controls = new List<Control>();
            controls.AddRange(new Control[]{panel1, pictureBox1}); 
            foreach (Control control in controls)
            {
                control.Paint += paint;
            }
        }

        void paint(object sender, PaintEventArgs e)
        {
            if (image_gu != null)
            {
                e.Graphics.DrawImage(image_gu, new PointF(0.0F, 0.0F));
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string imagepath = Directory.GetCurrentDirectory() + @"\800px-250_internets.jpg";
            if (File.Exists(imagepath))
            {
                image_gu = Image.FromFile(imagepath);
                Graphics img_gu = Graphics.FromImage(image_gu);
                img_gu.FillEllipse(Brushes.DarkBlue, 50, 50, 150, 150);
                foreach (Control control in controls)
                {
                    control.Invalidate();
                }
            }
            else
            {
                MessageBox.Show("нет файла в" +Directory.GetCurrentDirectory(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

    }
}


Это сообщение отредактировал(а) Certain - 20.3.2009, 12:28

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  WindowsApplication1.rar 100,26 Kb
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.