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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисовани в другом потоке, как организовать? 
:(
    Опции темы
Madrid
Дата 16.7.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем Привет!
Возможно тема уже обсуждалась, в поиске вроде ничего ненашёл, так что сильно прошу непинать.

На форме лежит пикчер бокс и кнопка...счёлкаю по кнопке в пикчер боксе рисуется эллипс.
Вот код:
Код

namespace WindowsApplication5
{
    public partial class Form1 : Form
    {

        private int w;
        private int h;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            w = 0;
            h = 0;

            for (int i = 0; i < 50; i++)
            {
                w += pictureBox1.Width / 50;
                h += pictureBox1.Height / 50;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(10);
            }
                
        }

        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(SystemColors.Control);
            e.Graphics.DrawEllipse(Pens.Red, 0, 0, w, h);
        }
    }
}


Как сделать так, чтобы пока идёт рисование, я мог двигать форму?
Если можно, с примером!

PM MAIL   Вверх
mr.DUDA
Дата 16.7.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Добавляем таймер (тянем на форму с тулбокса), подключаемся к событию Elapsed, в обработчике прибавляем свои числа к w и h делаем Refresh форме.


--------------------
user posted image
PM MAIL WWW   Вверх
Madrid
Дата 17.7.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделал так как Вы посоветовали - работает!
А немог ли бы Вы объяснить, как  делается тоже самое, только через потоки?Хочу понять как они работают, а примеров под WinForm ненайду ((

Это сообщение отредактировал(а) Madrid - 17.7.2007, 18:15
PM MAIL   Вверх
mr.DUDA
Дата 18.7.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Для форм проще работать с таймером, т.к. не нужно извращаться с Invoke. Про потоки поищите по форуму, по слову ThreadStart или Thread.


--------------------
user posted image
PM MAIL WWW   Вверх
Mag
Дата 18.7.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Madrid @ 17.7.2007,  18:15)
А немог ли бы Вы объяснить, как  делается тоже самое, только через потоки?Хочу понять как они работают, а примеров под WinForm ненайду ((

Хорошо объясняет работу с потоками - http://rsdn.ru/article/dotnet/CSThreading1.xml
--------------------
В  каждой черной комнате есть выход - всегда есть выход с любой ситуации!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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