« Asus Eee Pad 発表、 MSI からは Wind Pad、 電子書籍リーダー選びが面白くなってきた | トップページ | Silverlight でも Coded UI Test がサポートされる予定 »

2010年6月 2日 (水)

[.NET] 砂時計を使ってくれない UseWaitCursor プロパティ @VS2005

久々に Visual Studio 2005 を使うハメになったら、 まぁハマりまくりw
Form のイベントハンドラーの中で UseWaitCursor プロパティを true にしてもマウスカーソルが変化しないなんて、 もうバグとしか… (--;
# VS2008 ではちゃんと変わったのにぃ~

MSDN ライブラリの UseWaitCursor プロパティ (.NET 2.0 版) のコミュニティ コンテンツに書いておいたけど、 .NET 1.x のときと同じで、 現在のカーソルを退避しておいてから Cursors.WaitCursor をセットしてやるしかなさそうです。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

  Dim oldCursor As Cursor = Me.Cursor
  Me.Cursor = Cursors.WaitCursor
  Me.Enabled = False

  System.Threading.Thread.Sleep(3000) '* 時間の掛かる処理

  Application.DoEvents()
  Me.Enabled = True
  Me.Cursor = oldCursor
End Sub

ついでに。

これをイベントハンドラーにいちいち書くのは面倒なので、 たいてい次のようにしちゃいます。 インスタンス化されたときにカーソルを砂時計に変え、 ディスポーズされるときに元に戻すようなクラス ( ここでは FormDisabler ) を作っておいて…

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  Using (New FormDisabler(Me))

    System.Threading.Thread.Sleep(3000) '* 時間の掛かる処理

  End Using
End Sub

|

« Asus Eee Pad 発表、 MSI からは Wind Pad、 電子書籍リーダー選びが面白くなってきた | トップページ | Silverlight でも Coded UI Test がサポートされる予定 »

プログラミング」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [.NET] 砂時計を使ってくれない UseWaitCursor プロパティ @VS2005:

« Asus Eee Pad 発表、 MSI からは Wind Pad、 電子書籍リーダー選びが面白くなってきた | トップページ | Silverlight でも Coded UI Test がサポートされる予定 »