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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnPaint 
V
    Опции темы
larinva
Дата 2.9.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем привет! момогите вот код 
Код

Form2
Image image = Image.FromFile("roze.bmp");
        public void Draw(int x, int y)
        {
            int X = x;
            int Y = y;

            Graphics g;

            g = form1.panel1.CreateGraphics();
            g.DrawImage(image, X, Y);
            g.DrawString("Роза", SystemFonts.DefaultFont,
                SystemBrushes.WindowText, new Point(X, Y));
           
        }

Добавляю Розу на Form1
Код

         private void button1_Click(object sender, EventArgs e)
        {
            Draw(0,0);
        }

Роза добавляется на Form1, но после сворачивания исчезает. Понимаю что нужно перерисовать на Form1 но не могу догнать как это сделать. Помогите плиз! smile 

PM MAIL   Вверх
gambit
Дата 2.9.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

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



invalidate();

Добавлено @ 11:15
А, не понял вопроса, сейчас напишу как надо

Добавлено @ 11:19
Если рисунок один, то надо:

Код

string s;
image i;
int X;
int Y;
public void Draw(int x, int y)
        {
            X = x;
            Y = y;
            i=Image.FromFile("roze.bmp");
            s = "Роза";
            this.invalidate();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            е.Graphics.DrawImage(i, X, Y);
            e.Graphics.DrawString(s, SystemFonts.DefaultFont, SystemBrushes.WindowText, new Point(X, Y));            
        }


Это рисуем на форме, не проблема теперь перенести на панель.
Если же объектов будет много, то заменить переменную на коллекцию.

Это сообщение отредактировал(а) gambit - 2.9.2010, 11:52
PM MAIL ICQ Skype   Вверх
larinva
Дата 2.9.2010, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это вы gambit добавляете в рамках одной формы, а мне нужно по нажатию на кнопку которая расположена на form2 роза добавлялась на form1 и на ней в случае изменения перерисовывалась
PM MAIL   Вверх
gambit
Дата 2.9.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

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



larinva, а что мешает вынести
Код

string s;
image i;
int X;
int Y;

в первую форму, и обращаться к ним из второй? Это уже мелочи, главное, что ваша ошибка в том, что отрисовывать нужно в событии OnPaint, а не где то еще.
PM MAIL ICQ Skype   Вверх
larinva
Дата 2.9.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



при компиляции пишет
Значение не может быть неопределенным.
Имя параметра: image
вот тут
Код

form1

        public int X { get; set; }
        public int Y { get; set; }
        public string s { get; set; }
        public Image image { get; set; }

private void Form1_Paint(object sender, PaintEventArgs e)
        {
            е.Graphics.DrawImage(image, X, Y);
            e.Graphics.DrawString(s, SystemFonts.DefaultFont, SystemBrushes.WindowText, new Point(X, Y));            
        }


Это сообщение отредактировал(а) larinva - 2.9.2010, 13:03
PM MAIL   Вверх
larinva
Дата 2.9.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что-то не получается у меня
PM MAIL   Вверх
larinva
Дата 2.9.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я понимаю что нужно отрисовывать событие OnPaint, но как это сделать из form2 ?
PM MAIL   Вверх
gambit
Дата 2.9.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

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



Код

private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (image!=null && !string.IsNullOrWhiteSpace(s))
            {
                e.Graphics.DrawImage(image, X, Y);
            e.Graphics.DrawString(s, SystemFonts.DefaultFont, SystemBrushes.WindowText, new Point(X, Y));
            }
        }


Добавлено через 4 минуты и 45 секунд
не смотри на имена, делал в спешке

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  WindowsFormsApplication1.zip 13,72 Kb
PM MAIL ICQ Skype   Вверх
larinva
Дата 2.9.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



сп-бо gambit то что нужно  smile  держи +
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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