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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 20:55   #1
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию Рисование линии

Нада сделать ресование линии как в Paint.Но у меня рисует но чуть не так посмотрите пожалуста.
Код:
             bool first, dra;
        Point prev;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            dra=true;
            prev.X=e.X;
            prev.Y=e.Y;
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            dra = false;
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (dra)
            {
                Point po =new Point(e.X,e.Y);
                dralin(po);
            }
        }

        void dralin(Point point)
        {
            if (first == true)
            {
                Pen p = new Pen(Color.Black, 3);
                Graphics g = this.CreateGraphics();
                g.DrawLine(p, prev, point);
                first = false;
            }
            else
                first=true;
            
        }

Последний раз редактировалось Cpluser; 20.04.2010 в 21:09.
Cpluser вне форума Ответить с цитированием
Старый 20.04.2010, 22:45   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Ну вообще должно быть так:
при нажатии на мышку запоминаем координаты х и у..., и при отпускании запоминаем х и у и отрисовываем линию.. ну + навороты.. к сожелению студии под рукой нету.. что конкретно не так отрабатывает?
dampirik вне форума Ответить с цитированием
Старый 20.04.2010, 23:37   #3
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Оно поворачивает но рисует много линии а мне ж одна нада.
Cpluser вне форума Ответить с цитированием
Старый 21.04.2010, 00:14   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Ну дк правильно...
Если флаг дра тру то при каждом изменении положения курсора будет рисоваться линия(а метка фирст дает лиш только то, что рисоваться будет через раз и все)
Предлагаю сделать как я сказал:
Цитата:
при нажатии на мышку запоминаем координаты х и у..., и при отпускании запоминаем х и у и отрисовываем линию..
Если хотите чтобы была так сказать визуализация... то при движении можно как вы сделали, только без фирст и нужно затирать линию которая была до этого.
dampirik вне форума Ответить с цитированием
Старый 21.04.2010, 00:15   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

в MouseDawn - запоминаем стартовую точку
в MouseMove - следим за текущей точкой
в OnPaint - рисуем
в MouseUp - рисуем окончательно

Т.е. тот код, который у вас в MouseMove (тут просто запоминать точку) нужно в MouseUp.
counter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вертикальные линии в отчете Nikolaeva БД в Delphi 3 30.07.2019 09:45
Очистка линии женя2010 Microsoft Office Excel 8 21.04.2010 10:19
динамические линии DIMEDROL1985 Помощь студентам 2 24.01.2010 00:37
Определение цвета линии на рисунке PAVEL315 Общие вопросы Delphi 3 27.12.2009 20:34
ЛИНИИ УРОВНЯ (ПАСКАЛЬ) mens-evgenij Помощь студентам 1 22.05.2009 09:50