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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 11:30   #1
Николая Ленин
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 39
По умолчанию Ластик как в Paint

Здравствуйте. Подскажите, пожалуйста, как сделать в C# что-то на подобии ластика
Николая Ленин вне форума Ответить с цитированием
Старый 21.01.2012, 23:08   #2
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

если это win form,то drawrectangle.то есть нарисуй квадрат заполненный цветом канвы.
sergei64_89 вне форума Ответить с цитированием
Старый 29.03.2015, 17:31   #3
3JIou_geg
Пользователь
 
Регистрация: 29.03.2015
Сообщений: 11
По умолчанию

подскажите примерный код на C# как заполнить цветом канвы?
код на выделенную область drawrectangle у меня есть.

Код:
//нажатие л.к. мыши(запоминает начальные координаты прямоугольная область)
private void pictureBox1_MouseDown_1(object sender, MouseEventArgs e)
{
if (pictureBox1.Cursor == Cursors.Cross)
{
DrawRectangle = true;
DrawRectangle_Mouse_X_Start = e.Location.X;
DrawRectangle_Mouse_Y_Start = e.Location.Y;
DrawRectangle_Mouse_X_End = e.Location.X + 1;
DrawRectangle_Mouse_Y_End = e.Location.Y + 1;
}
if (pictureBox1.Cursor == Cursors.Hand)
{
m_PanStartPoint = new Point(e.X, e.Y);
}

}

//Сдвиг мыши(+ конечные координаты)
private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e)
{
if (pictureBox1.Cursor == Cursors.Cross && e.Button == MouseButtons.Left)
{
DrawRectangle_Mouse_X_End = e.Location.X;
DrawRectangle_Mouse_Y_End = e.Location.Y;
pictureBox1.Refresh();

}
if (pictureBox1.Cursor == Cursors.Hand && e.Button == MouseButtons.Left)
{
int DeltaX;
int DeltaY;
DeltaX = (m_PanStartPoint.X - e.X);
DeltaY = (m_PanStartPoint.Y - e.Y);
tabPage1.AutoScrollPosition = new System.Drawing.Point((DeltaX - tabPage1.AutoScrollPosition.X), (DeltaY - tabPage1.AutoScrollPosition.Y));
}
}

рисуем выделенный прямоугольник
private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
if (DrawRectangle)
{
int MouseX;
int MouseY;
MouseX = DrawRectangle_Mouse_X_End - DrawRectangle_Mouse_X_Start;
MouseY = DrawRectangle_Mouse_Y_End - DrawRectangle_Mouse_Y_Start;

//Up and Left
if (MouseX < 0 && MouseY < 0)
{
rect = new Rectangle((new Point(DrawRectangle_Mouse_X_End, DrawRectangle_Mouse_Y_End)), new Size(System.Math.Abs(MouseX), System.Math.Abs(MouseY)));
}

//Down and Right

if (MouseX > 0 && MouseY > 0)
{
rect = new Rectangle((new Point(DrawRectangle_Mouse_X_Start, DrawRectangle_Mouse_Y_Start)), new Size((MouseX), (MouseY)));
}

//Up and Right
if (MouseX < 0 && MouseY > 0)
{
rect = new Rectangle((new Point(DrawRectangle_Mouse_X_End, DrawRectangle_Mouse_Y_Start)), new Size(System.Math.Abs(MouseX), MouseY));
}

//Down and Left
if (MouseX > 0 && MouseY < 0)
{
rect = new Rectangle((new Point(DrawRectangle_Mouse_X_Start, DrawRectangle_Mouse_Y_End)), new Size(MouseX, System.Math.Abs(MouseY)));
}
try
{
e.Graphics.DrawRectangle(Pens.Black , rect);
}
catch (Exception) { }
}
}


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

Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.03.2015 в 21:20.
3JIou_geg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заливка области как в Paint Николая Ленин C# (си шарп) 3 09.01.2012 06:19
ластик(графический редактор) AndersonEgo C# (си шарп) 1 29.05.2011 16:51
Рисовать в Win32 как в Paint ArcSSSS Win Api 2 21.05.2010 19:11
Рисование как в Paint artemavd Общие вопросы Delphi 4 12.02.2010 18:38
Ластик для имиджа image1 Marsik Мультимедиа в Delphi 24 01.01.2008 14:31