次の方法で共有


Cursor.Dispose メソッド

Cursor によって使われているすべてのリソースを解放します。

Public Overridable Sub Dispose() Implements IDisposable.Dispose
[C#]
public virtual void Dispose();
[C++]
public: virtual void Dispose();
[JScript]
public function Dispose();

実装

IDisposable.Dispose

解説

Cursor を使い終わったら、 Dispose を呼び出します。 Dispose メソッドは、 Cursor を使用できない状態にします。 Dispose を呼び出した後で、 Cursor へのすべての参照を解放し、 Cursor によって占有されていたメモリをガベージ コレクタがクリアできるようにする必要があります。詳細については、 アンマネージ リソースのクリーンアップDispose メソッドの実装 の各トピックを参照してください。

メモ    Cursor への参照をすべて解放してしまう前に、必ず Dispose を呼び出してください。このメソッドを呼び出さないと、カーソルが使用しているリソースは、ガベージ コレクションによって Cursor オブジェクトの Finalize メソッドが呼び出されるまで解放されません。

使用例

[Visual Basic, C#, C++] フォーム上に、指定されたカーソルをその通常サイズで描画し、次にストレッチ モードで 2 倍のサイズに描画する例を次に示します。この例は、 Form があり、呼び出されたときにメソッドに渡す Cursor があることを前提にしています。

 
Private Sub DrawCursorsOnForm(cursor As Cursor)
   ' If the form's cursor is not the Hand cursor and the 
   ' Current cursor is the Default, Draw the specified 
   ' cursor on the form in normal size and twice normal size. 
   If (Not Me.Cursor.Equals(Cursors.Hand)) And _
     Cursor.Current.Equals(Cursors.Default) Then

      ' Draw the cursor stretched.
      Dim graphics As Graphics = Me.CreateGraphics()
      Dim rectangle As New Rectangle(New Point(10, 10), _
        New Size(cursor.Size.Width * 2, cursor.Size.Height * 2))
      cursor.DrawStretched(graphics, rectangle)
     
      ' Draw the cursor in normal size.
      rectangle.Location = New Point(rectangle.Width + _
        rectangle.Location.X, rectangle.Height + rectangle.Location.Y)
      rectangle.Size = cursor.Size
      cursor.Draw(graphics, rectangle)

      ' Dispose of the cursor.
      cursor.Dispose()
   End If
End Sub

[C#] 
private void DrawCursorsOnForm(Cursor cursor)
{
   // If the form's cursor is not the Hand cursor and the 
   // Current cursor is the Default, Draw the specified 
   // cursor on the form in normal size and twice normal size.
   if(this.Cursor != Cursors.Hand & 
     Cursor.Current == Cursors.Default)
   {
      // Draw the cursor stretched.
      Graphics graphics = this.CreateGraphics();
      Rectangle rectangle = new Rectangle(
        new Point(10,10), new Size(cursor.Size.Width * 2, 
        cursor.Size.Height * 2));
      cursor.DrawStretched(graphics, rectangle);
        
      // Draw the cursor in normal size.
      rectangle.Location = new Point(
      rectangle.Width + rectangle.Location.X, 
        rectangle.Height + rectangle.Location.Y);
      rectangle.Size = cursor.Size;
      cursor.Draw(graphics, rectangle);

      // Dispose of the cursor.
      cursor.Dispose();
   }
}

[C++] 
private:
   void DrawCursorsOnForm(System::Windows::Forms::Cursor* cursor) {
      // If the form's cursor is not the Hand cursor and the
      // Current cursor is the Default, Draw the specified
      // cursor on the form in normal size and twice normal size.
      if (this->Cursor != Cursors::Hand &&
         System::Windows::Forms::Cursor::Current == Cursors::Default) {
            // Draw the cursor stretched.
            Graphics* graphics = this->CreateGraphics();
            Rectangle rectangle =  Rectangle( Point(10, 10),  System::Drawing::Size(cursor->Size.Width * 2,
               cursor->Size.Height * 2));
            cursor->DrawStretched(graphics, rectangle);

            // Draw the cursor in normal size.
            rectangle.Location =  Point(rectangle.Width + rectangle.Location.X,
               rectangle.Height + rectangle.Location.Y);
            rectangle.Size = cursor->Size;
            cursor->Draw(graphics, rectangle);

            // Dispose of the cursor.
            cursor->Dispose();
         }
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

Cursor クラス | Cursor メンバ | System.Windows.Forms 名前空間