- PR -

Cursors.WaitCursorについて

1
投稿者投稿内容
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-04-11 17:03

 初歩的な質問ですいません。
VB2005の環境です。

マウスを砂時計にしたく
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

としましたが砂時計になりません。

このコードではだめなのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-11 17:19
というより 'ユーザーを待たせている Form' で、

コード:

    Me.Cursor = System.Windows.Forms.Cursors.WaitCursor


とやるのが一般的です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-04-11 17:45
制限事項つきですが、Control.UseWaitCursorなんてのもあります。

制限事項については以下の記事を参照してください。
.NET TIPS 簡単に待機カーソルを表示するには?(2.0のみ、C#、VB)
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2008-04-11 18:04
こんにちは。

引用:

トッティさんの書き込み (2008-04-11 17:03) より:

マウスを砂時計にしたく
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

としましたが砂時計になりません。
このコードではだめなのでしょうか?



ダメではないでしょうが、
すぐにイベントハンドラを抜けているか、処理中にApplication.DoEventsが呼び出されているからではないですか?
Cursor.Current プロパティ

コード:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

        ' 重い処理 
        System.Threading.Thread.Sleep(10000)

    End Sub




砂時計にならない(というか)すぐに戻ってしまうのは
ウィンドウメッセージWM_SETCURSORが処理されてカーソルが戻されているからでしょう。
WM_SETCURSOR Notification
トッティ
ベテラン
会議室デビュー日: 2008/04/01
投稿数: 64
投稿日時: 2008-04-12 10:58
すいません、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)