.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