Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 16.01.2014
Сообщений: 16
1

Перемещение scroll относительно мыши

04.02.2014, 18:37. Показов 3058. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть панель не ней объекты, на панели стоит croll, я подвожу мышь к краю формы, можно как-то сделать так что бы при этом двигался croll?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2014, 18:37
Ответы с готовыми решениями:

Узнать координаты мыши относительно picturebox
Как узнать координаты мыши относительно picturebox внутри события MouseHover(происходит когда мышь...

Перемещение изображения манипулятором мыши
Создать графические объекты и организовать управление движением этих объектов по заданной...

Перемещение формы по указателю мыши
Может для этого есть уже подходящие функции При нажатии средней кнопки мышки форма перемещается...

Определить координаты курсора мыши относительно формы
Доброго времени суток, форумчане. Нужна помощь в решении следующего вопроса: У меня есть форма...

2
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
04.02.2014, 18:54 2
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Не знаю метода проще, но видимо придётся плясать с WinAPI. Недавно писал синхрон прокрутки двух RichTextBox: Синхронизация прокрутки в двух RichTextBox
C#
1
2
3
4
5
6
private void MainForm_MouseMove(object sender, MouseEventArgs e) {
    // срабатывет, когда до края осталось 10 пикселей
    if (e.X > this.Location.X - 10 || e.Y > this.Location.Y - 10) {
        // здесь сдвиг
    }
}
Сдвигаем с помощью кода из темы выше.
1
0 / 0 / 1
Регистрация: 16.01.2014
Сообщений: 16
05.02.2014, 15:44  [ТС] 3
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

tezaurismosis, Спасибо большое, я долго смотрел на ваш код ломал голову в итоге придумал свое решение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int x1,y1;
...
if (e.X > this.Size.Width - 50)
            {
                //MessageBox.Show("H");
                //int i = Pn_old.AutoScrollPosition.X;
                Pn_old.AutoScrollPosition = new Point(x1,0);
                x1 + 20;
                Refresh();
                //Application.DoEvents();
            }
            if (e.Y > this.Size.Height - 50)
            {
                Pn_old.AutoScrollPosition = new Point(y1, 0);
                y1 = y1 + 20;
                Refresh();
            }
там уже обновляя sdvig.x1 все решается

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
if (e.X > this.Size.Width - 90 + sdvig.x1)
            {
                //MessageBox.Show("H");
                //int i = Pn_old.AutoScrollPosition.X;
                Pn_old.AutoScrollPosition = new Point(sdvig.x1, sdvig.y1);
                sdvig.x1 = sdvig.x1 + 20;
                Refresh();
                Tm_sdvig.Enabled = true;
                //Application.DoEvents();
            }
            if (e.Y > 50 + sdvig.y1+540)
            {
                Pn_old.AutoScrollPosition = new Point(sdvig.x1, sdvig.y1);
                sdvig.y1 = sdvig.y1 + 20;
                Tm_sdvig.Enabled = true;
                //MessageBox.Show("");
                Refresh();
            }
            if (e.X < sdvig.x1+70)
            {
                Pn_old.AutoScrollPosition = new Point(sdvig.x1, sdvig.y1);
                sdvig.x1 = sdvig.x1 - 20;
                Tm_sdvig.Enabled = true;
                //MessageBox.Show("");
                Refresh();
            }
            if (e.Y < 70 + sdvig.y1)
            {
                Pn_old.AutoScrollPosition = new Point(sdvig.x1, sdvig.y1);
                sdvig.y1 = sdvig.y1 - 20;
                Tm_sdvig.Enabled = true;
                //MessageBox.Show("");
                Refresh();
            }
В ообщем случае появилось вот так, где sdvig.x1 и sdvig.y1 мой класс типа int
0
05.02.2014, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2014, 15:44
Помогаю со студенческими работами здесь

Перемещение объекта при помощи мыши
Доброго времени суток. Как можно реализовать перемещение какого либо объекта (label, button и т.д)...

Перемещение геометрических фигур курсором мыши
Как реализовать следующее: - Добавление на форму геометрических фигур (круг, квадрат, треугольник)...

Положение курсора мыши относительно окна стороннего приложения
Доброго времени суток всем. Хотелось бы узнать, можно ли узнать координаты мыши относительно...

Перемещение мыши и заголовка окна приложения вместе на С#
Здравствуйте! Cледующий код написан на С++ В обработчике события движения курсора мыши по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru