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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2016, 22:47   #1
Катя12345
Новичок
Джуниор
 
Регистрация: 31.05.2016
Сообщений: 1
По умолчанию поможете подправить рисовалку в с#?

есть обычный простенький графический редактор в ВинФормс
рисует и меняет цвет линии, очищает поле
подскажите, как добавить изменение толщины линии и возможность рисования круга? на всякий случай кину код

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        Color CurrentColor = Color.Black; //Default color
        Point CurrentPoint; //Current Position
        Point PrevPoint; //Previous Position
        bool isPressed;
        Graphics g;

        public Form1()
        {
            InitializeComponent();
            g = panel1.CreateGraphics();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult D = colorDialog1.ShowDialog();
            if (D == System.Windows.Forms.DialogResult.OK)
                CurrentColor = colorDialog1.Color;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            panel1.Refresh();
        }

        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            isPressed = true;
            CurrentPoint = e.Location;
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isPressed)
            {
                PrevPoint = CurrentPoint;
                CurrentPoint = e.Location;
                paint_simple();
            }
        }

        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            isPressed = false;
        }
        private void paint_simple()
        {
            Pen p = new Pen(CurrentColor);
            g.DrawLine(p, PrevPoint, CurrentPoint);
        }
    }
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.06.2016 в 22:59.
Катя12345 вне форума Ответить с цитированием
Старый 14.06.2016, 13:24   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Добавить 2 комбобокса - для толщины (например, от 1 до 10) и для типа рисования (линия и круг), в момент рисования (нажатия мыши) считывать с них номер выбранного пункта (Combobox.SelectedIndex) и запоминать в некие переменные. В методе паинтсимпл на основании переменной способа рисования выводить либо круг либо линию, круг (а точнее эллипс) выводится так g.DrawEllipse(p, PrevPoint, CurrentPoint);
Толщину менять через Pen p = new Pen(mynewwidth, CurrentColor); , где mynewwidth - переменная для толщины.
Примерно так, не проверял, написал прямо тут, пробуйте.
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делаю рисовалку x_Alex_x Общие вопросы по Java, Java SE, Kotlin 6 23.10.2013 10:15
Не поможете? CMEPTb2010 Помощь студентам 1 14.02.2011 10:06
А новичку поможете? EliteKILLER Общие вопросы C/C++ 14 23.03.2010 19:15