Определите, находится ли курсор в определенной области экрана - PullRequest
0 голосов
/ 14 февраля 2012

Я хотел бы знать, когда мой курсор находится в определенной области (маленький прямоугольник, например, в самом правом углу экрана).

Когда курсор находится в этой области, форма i 'Перетаскивание m должно иметь более высокую высоту.

На данный момент у меня просто есть следующее:

private void Form1_LocationChanged(object sender, EventArgs e)
{
    if (Cursor.Position == new Point(-1037, 516))
    {
        this.Height = 450;
    }

}

Таким образом, мне нужно создать условие, чтобы знать, находится ли мой курсор в определенной зоне(справа от экрана) Может ли кто-нибудь помочь мне в этом заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012
private void Form1_LocationChanged(object sender, EventArgs e)
{   
     //THE POSITION OF MY RECTANGLE HERE IS ON THE UPPER LEFT
     Rectangle rec = new Rectangle(0,0,100,100); //CHANGE THIS DIMENSION TO YOUR LIKING
     if (rec.Contains(Cursor.Position))
     {
         //DO YOUR STUFF HERE
     }
}

Надеюсь, это полезно.

0 голосов
/ 14 февраля 2012

Cursor.Position в экранных координатах. Вы можете проверить, находится ли позиция в указанном диапазоне:

Const RANGE_X As Integer = 20;
Const RANGE_Y As Integer = 20;

if ( Screen.PrimaryScreen.Bounds.Width - RANGE_X <= Cursor.Position.X And _
     Cursor.Position.Y <= RANGE_Y )

   ' we're near the top right edge

edit : проверить, находится ли курсор внутри области границы, как писал @Philip:

Const BORDER_SIZE As Integer = 100;     ' In pixel
Rectangle border = new Rectangle(
    BORDER_SIZE, 
    BORDER_SIZE, 
    Screen.PrimaryScreen.Bounds.Width - BORDER_SIZE, 
    Screen.PrimaryScreen.Bounds.Height - BORDER_SIZE);  

If ( Not border.Contains(Cursor.Position) ) Then
    '  ... yes the cursor is in the border area
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...