2012-02-14 53 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

相关问题