1 / 1 / 1
Регистрация: 14.11.2012
Сообщений: 42
1

Определение позиции курсора на экране (не на форме)

14.12.2012, 00:37. Показов 2780. Ответов 2

Author24 — интернет-сервис помощи студентам
Привет!
я обрабатываю перемещение по графику функции, нарисованном на PictureBox'е формы, и хочу сделать так, чтобы курсор не упирался в границы экрана, а становился в противоположную точку (как в 3ds max'е), то есть, например, на дисплее 1280x1024 при координатах курсора (1280, 342) курсор становился на точку (0, 342). Для этого мне нужно узнать координаты курсора на экране (не на форме). Как я могу это сделать?
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void PicBox_MouseMove(object sender, MouseEventArgs e)
      {
      ...
      
      if (e.Button == MouseButtons.Left)
        {
        ...
        
        if (e.Y == 1)
          Cursor.Position = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width, e.Y);
        else
          if (e.X == System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width, e.Y)
            Cursor.Position = new Point(0, e.Y);
        }
так я с помощью e.X и e.Y могу узнать позицию курсора только отностиельно формы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2012, 00:37
Ответы с готовыми решениями:

Определение позиции курсора
Здравствуйте! Задание следующего характера: написать фрагмент программы, реализующий задание:...

Определение позиции курсора
Скажите какие функции использовать для того чтобы получить данную позицию курсора. Например нужны...

Определение позиции курсора в TextArea
Как на JAvaScript опрелеить позицию курсора в текстареа?? Заранее спасиба!

Определение позиции курсора в TextBox'e
Всем привет! Подскажите как определить текушую позицию курсора в TextBox'e? Собственно мне...

2
Футболист
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
14.12.2012, 04:48 2
Отчет координат начинаеться с верхнего левого угла
1. Перенеси на форму из панели элементов элементы label, timer
2. Нажми 2 раза на таймер, сгенерируеться событие timerTick
3. Впиши туда следующий код, выглядеть должно так. Ну и не забудь запустить таймер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = "X " + Cursor.Position.X + " Y " + Cursor.Position.Y;
        }
    }
1
1 / 1 / 1
Регистрация: 14.11.2012
Сообщений: 42
16.12.2012, 21:42  [ТС] 3
В таком слечае мы просто на label1 будем видеть текущие координаты курсора на PicBox'е. И ведь timer1_Tick необязателен: вместо него можно использовать (как теперь выяснилось) PicBox_MouseMove.
Может, я не умею объяснять, но вот что я имел ввиду (теперь оно работает):
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void PicBox_MouseMove(object sender, MouseEventArgs e)
  {
  ...
  if (e.Button == MouseButtons.Left)
    {
    ...
    if (Cursor.Position.X == 0)
      Cursor.Position = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - 1,
                                  Cursor.Position.Y);
      else
        if (Cursor.Position.X == System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - 1)
          Cursor.Position = new Point(0, Cursor.Position.Y);
            
    if (Cursor.Position.Y == 0)
      Cursor.Position = new Point(Cursor.Position.X,
                                  System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height - 1);
      else
        if (Cursor.Position.Y == System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height - 1)
          Cursor.Position = new Point(Cursor.Position.X, 0);
    ...
    }
  ...
  }

Вопрос решён.
Большое спасибо за помощь Goal'а с Cursor.Position.
0
16.12.2012, 21:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2012, 21:42
Помогаю со студенческими работами здесь

Определение позиции курсора в поле
Подскажите., можно как-н определить позицию курсора в поле, чтобы при нажатии на какую-н кнопку...

TMemo определение позиции курсора
Здравствуйте столкнулся с такой проблемой мне требуется определить позицию в Memo на которой...

Определение позиции курсора относительно элемента
Подскажите пожалуйста, допустим есть выпадающий список ul li, открывающийся при наведении курсора...

SDL: определение позиции курсора мыши
Товарищи, как в SDL определить позицию курсора мыши? Прочитал на вики, что есть ф-я...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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