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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2012, 18:06   #1
Vladislavik36
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 12
По умолчанию Изменение размеров объектов на форме мышью

Всем привет! Делаю программу на Visual C#. В программе я сделал перетаскивание нужных мне объектов:

Код:
        private int x = 0;
        private int y = 0;
private void button2_MouseDown(object sender, MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
        }
 
        private void button2_MouseMove(object sender, MouseEventArgs e)
        {
                if (e.Button == MouseButtons.Left)
                {
                    Point pos = new Point(Cursor.Position.X - x, Cursor.Position.Y - y);
                    button2.Location = PointToClient(pos);
                }
        }
Это работает. Но мне ещё надо сделать что бы при нажатии на углы этой кнопки, и перемещении мыши она растягивалась, но как так сделать - незнаю. И ещё: как сделать что бы при этом(перемещении, растягивании) изменялся курсор?
P.S: что бы при перемещении изменялся курсор - сделал, но растягивание - так и не смог.
Vladislavik36 вне форума Ответить с цитированием
Старый 26.09.2012, 10:41   #2
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Не знаю, как сделать это правильно и красиво, я бы сделал приблизительно так (пока просто алгоритм, код ближе к вечеру закину, если надо):
1. Ловлю нажатие мыши.
2. Проверяю координаты нажатия, если оно, предположим, произошло в квадратике 5х5 пикселей рядом с углом, то выставляю флаг CornerClicked, а также фиксирую координаты нажатия.
3. Отрабатываю движение мыши, плюсую к св-ву Size у кнопки разницу между точкой нажатия и текущим положением мыши.

Остается только учесть направление растяжения, а принцип тот же остается.

P.S.
Уверен, что это далеко не самый хороший алгоритм, но большего посоветовать не могу.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 26.09.2012, 10:57   #3
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

http://www.codeproject.com/Articles/...Dragging-Class
Reskov вне форума Ответить с цитированием
Старый 26.09.2012, 18:49   #4
Vladislavik36
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Reskov Посмотреть сообщение
спасибо, работает, но как сделать что бы некоторые кнопки не перемещались, растягивались?
Vladislavik36 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение размеров элементов на форме, delphi SonicBob Помощь студентам 6 18.03.2012 11:15
Изменение размеров шрифта палитры компонентов и инcпектора объектов Иллидан Общие вопросы Delphi 0 13.07.2011 20:20
Изменение размеров компонентов на форме. prod87 Общие вопросы Delphi 2 18.05.2010 17:13
С++ Builder Изменение размеров компонентов на форме во время исполнения программы Bair C++ Builder 3 18.12.2008 13:43
Изменение размеров pinksky Microsoft Office Excel 3 18.04.2008 15:52