2012-02-14 73 views
0

我想知道我的光標何時位於特定區域(例如,屏幕右側的小矩形)內。確定光標位置是否在屏幕的特定區域中

當我的光標在這個區域時,我拖動的窗體必須有更高的高度。

到現在爲止,我只有這個:

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

} 

因此,我需要創造條件知道如果我的光標所處的特定AERA內(在屏幕的右側) 誰能幫我這個 提前感謝。

+0

這僅僅是一個隨機點,很難在屏幕上找到它...我不知道它是否有效... – Slrg 2012-02-14 16:02:18

回答

1

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 

編輯:如果位置withing指定範圍你可能考到測試,如果光標是一個邊界區域內,就像@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 
+0

它的作品是的,謝謝即使我真的不明白它... 我應該怎麼做這樣做在屏幕上? 我的意思是,屏幕邊界周圍一英寸,高度例如是800。對於屏幕的其餘部分(邊界以外),高度爲100 感謝您的幫助 – Slrg 2012-02-15 08:48:30

+0

它幾乎完全相同,測試光標是否在邊框區域。 – vulkanino 2012-02-15 09:09:11

3
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

非常感謝您的回答,它看起來不錯! 但是,當我將屏幕移動到屏幕上時,沒有任何反應......我不知道這個矩形實際上代表了屏幕的哪一部分......它在右邊? 私人無效Form1_LocationChanged(對象發件人,EventArgs的) { 點Pt =新點(Cursor.Position.X,Cursor.Position.Y); Rectangle rec = new Rectangle(0,0,100,100);如果(rec.Contains(pt)) this.Height = 450;則將該維度更改爲您的喜歡 ;如果(rec.Contains(pt)) this.Height = 450; } } – Slrg 2012-02-14 16:08:01

+0

耶我矩形是左側對不起..你可以將其更改爲正確的只是改變尺寸(X,Y,寬度,高度) – 2012-02-14 16:09:38

+0

是ü能夠使它發揮作用?我希望如果不是,我願意幫助 – 2012-02-14 16:15:39