.NET C#,VB.NET,VC.NET

■マウスカーソルの移動範囲を制限する

マウスカーソルの移動範囲を
任意の矩形内に制限します。

System.Windows.Forms.Cursor.Clip
を使います。
Win32APIのClipCursorに相当するものです。

マウスカーソルは他のアプリも利用するデバイスなので
利用の際は慎重に。

制限を解除したい場合は
Windowsキーを押すなどすればOKです。
(CTRL+ESCでもOK)

サンプルでは、Form上のボタンを押下すると
フォーム上でのみマウスカーソルを移動できるようにしています。
フォームを閉じると制限を解除しています。


C#
private void button1_Click(object sender, System.EventArgs e)
{
    // マウスカーソルの移動範囲を制限(左上座標と幅、高さを指定して矩形を表現)
    // 下記の2行は共に同じ結果となります。
    System.Windows.Forms.Cursor.Clip = new Rectangle( this.Location.X, this.Location.Y, this.Size.Width, this.Size.Height );
    System.Windows.Forms.Cursor.Clip = new Rectangle( this.Location, this.Size );
}

private void Form1_Closed(object sender, System.EventArgs e)
{
    // 制限を解除
    System.Windows.Forms.Cursor.Clip = new Rectangle( 0, 0, 0, 0 );
}
VB.NET
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' マウスカーソルの移動範囲を制限(左上座標と幅、高さを指定して矩形を表現)
    ' 下記の2行は共に同じ結果となります。
    System.Windows.Forms.Cursor.Clip = New Rectangle(Me.Location.X, Me.Location.Y, Me.Size.Width, Me.Size.Height)
    System.Windows.Forms.Cursor.Clip = New Rectangle(Me.Location, Me.Size)
End Sub

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
    ' 制限を解除
    System.Windows.Forms.Cursor.Clip = New Rectangle(0, 0, 0, 0)
End Sub
VC.NET
private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
{
    // マウスカーソルの移動範囲を制限(左上座標と幅、高さを指定して矩形を表現)
    // 下記の2行は共に同じ結果となります。
    System::Windows::Forms::Cursor::Clip = System::Drawing::Rectangle( this->Location.X, this->Location.Y, this->Size.Width, this->Size.Height );
    System::Windows::Forms::Cursor::Clip = System::Drawing::Rectangle( this->Location, this->Size );
}

private: System::Void Form1_Closed(System::Object *  sender, System::EventArgs *  e)
{
    // 制限を解除
    System::Windows::Forms::Cursor::Clip = System::Drawing::Rectangle( 0, 0, 0, 0 );
}

トップ  > .NET C#,VB.NET,VC.NET
Copyright (C) 2005.09 〜 By Shougo Suzaki

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送