システムに登録されているカーソル(マウスポインタ)は、Cursorsクラスの静的プロパティで取得できます。
以下に、Cursorsクラスで取得できるシステムカーソルをすべて描画する例を示します。このコードはフォームのクラスに記述されており、カーソルをそのフォームに描画しています。
'カーソルを描画するGraphics Dim g As System.Drawing.Graphics = Me.CreateGraphics() 'Cursorsクラスの静的プロパティを取得する Dim cursorsType As Type = GetType(System.Windows.Forms.Cursors) Dim pros As System.Reflection.PropertyInfo() = cursorsType.GetProperties( _ System.Reflection.BindingFlags.Public Or _ System.Reflection.BindingFlags.Static) '描画する位置 Dim drawPoint As New System.Drawing.Point(10, 10) For Each pro As System.Reflection.PropertyInfo In pros 'CursorsクラスのプロパティからCursorオブジェクトを取得する Dim cur As System.Windows.Forms.Cursor = _ DirectCast(pro.GetValue(Nothing, Nothing), System.Windows.Forms.Cursor) 'カーソルを描画する cur.Draw(g, New Rectangle(drawPoint, cur.Size)) 'プロパティの名前を描画する g.DrawString(pro.Name, Me.Font, System.Drawing.Brushes.Black, _ drawPoint.X, drawPoint.Y + cur.Size.Height) 'カーソルの描画位置を変更する drawPoint.X += cur.Size.Width + 40 If drawPoint.X > 500 Then drawPoint.X = 10 drawPoint.Y += cur.Size.Height + CInt(Me.Font.GetHeight()) + 10 End If Next g.Dispose()
//カーソルを描画するGraphics System.Drawing.Graphics g = this.CreateGraphics(); //Cursorsクラスの静的プロパティを取得する Type cursorsType = typeof(System.Windows.Forms.Cursors); System.Reflection.PropertyInfo[] pros = cursorsType.GetProperties( System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); //描画する位置 System.Drawing.Point drawPoint = new System.Drawing.Point(10, 10); foreach (System.Reflection.PropertyInfo pro in pros) { //CursorsクラスのプロパティからCursorオブジェクトを取得する System.Windows.Forms.Cursor cur = (System.Windows.Forms.Cursor)pro.GetValue(null, null); //カーソルを描画する cur.Draw(g, new Rectangle(drawPoint, cur.Size)); //プロパティの名前を描画する g.DrawString(pro.Name, this.Font, System.Drawing.Brushes.Black, drawPoint.X, drawPoint.Y + cur.Size.Height); //カーソルの描画位置を変更する drawPoint.X += cur.Size.Width + 40; if (drawPoint.X > 500) { drawPoint.X = 10; drawPoint.Y += cur.Size.Height + (int)this.Font.GetHeight() + 10; } } g.Dispose();
結果は、次のように表示されます。
以下にCursorsクラスのプロパティを表で示します。なお説明は、MSDNの「Cursors クラス」からの抜粋です。
名前 | 説明 |
---|---|
AppStarting | アプリケーションの開始時に表示されるカーソルを取得します。 |
Arrow | 矢印カーソルを取得します。 |
Cross | 十字カーソルを取得します。 |
Default | 既定のカーソルを取得します。通常は矢印カーソルです。 |
Hand | Web リンクの上にマウスを移動すると表示されるハンド カーソルを取得します。 |
Help | 矢印と疑問符が組み合わされたヘルプ カーソルを取得します。 |
HSplit | マウスを水平方向の分割バーの上に置くと表示されるカーソルを取得します。 |
IBeam | マウスをクリックしたときにテキスト カーソルの位置を示す I ビーム カーソルを取得します。 |
No | 現在の操作が無効な領域であることを示すカーソルを取得します。 |
NoMove2D | マウスを動かさずにウィンドウを水平および垂直の両方向にスクロールできるとき、このホイール操作を表すカーソルを取得します。 |
NoMoveHoriz | マウスを動かさずに水平方向へのスクロールができるとき、このホイール操作を表すカーソルを取得します。 |
NoMoveVert | マウスを動かさずにウィンドウを垂直方向にスクロールできるとき、このホイール操作を表すカーソルを取得します。 |
PanEast | マウスを動かしながらウィンドウを水平方向に右スクロールできるとき、このホイール操作を表すカーソルを取得します。 |
PanNE | マウスを動かしながらウィンドウを水平および垂直に右上へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanNorth | マウスを動かしながらウィンドウを垂直に上へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanNW | マウスを動かしながらウィンドウを水平および垂直に左上へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanSE | マウスを動かながらウィンドウを水平および垂直に右下へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanSouth | マウスを動かしながらウィンドウを垂直に下へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanSW | マウスを動かしながらウィンドウを水平および垂直に左下へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
PanWest | マウスを動かしながらウィンドウを水平に左へスクロールするとき、このホイール操作を表すカーソルを取得します。 |
SizeAll | 十字型の方向を指す矢印が結合して構成されている、4 方向のサイズ変更用カーソルを取得します。 |
SizeNESW | 2 方向の対角線 (右斜めと左斜め) で構成されているサイズ変更用カーソルを取得します。 |
SizeNS | 垂直の 2 方向 (上と下) で構成されているサイズ変更用カーソルを取得します。 |
SizeNWSE | 2 方向の対角線 (左斜めと右斜め) で構成されているサイズ変更用カーソルを取得します。 |
SizeWE | 水平の 2 方向 (左と右) で構成されているサイズ変更用カーソルを取得します。 |
UpArrow | 通常はカーソル位置の識別に使用する上向きの矢印カーソルを取得します。 |
VSplit | マウスを垂直方向の分割バーの上に置くと表示されるカーソルを取得します。 |
WaitCursor | 待機カーソルを取得します。通常は砂時計の形です。 |