マウスカーソルを変更する

タグの編集
投稿者 N88-Basic  (社会人) 投稿日時 2021/4/28 14:55:15
Windows 10 + Visual Studio 2019 にてアプリを作成しております。

処理に長時間にかかる前にマウスカーソルを変更したいと考えております。以前の投稿("ShowDialog中のカーソルを変えたい。")に似た状況かもしれませんが、ご教授いただければ幸いです。

1)検索処理対象のフォルターを選択
        Dim folderBrowser As New FolderBrowserDialog
        Dim Res As DialogResult = folderBrowser.ShowDialog
        If Res <> DialogResult.OK Then Exit Sub

 2)検索処理の開始
        Cursor = Cursors.WaitCursor
        
 マウスカーソルの挙動に関して
 A)フォルダーダイアログ全体が親フォームに収まっている場合はカーソルが変化する
 B)フォルダーダイアログが親フォームから外れた状態で選択後、マウスカーソルを親フォームに戻しても、マウスカーソルが変化しない

 B)の状態でマウスカーソルに変化が起きるようにする方法をご存じでしたらご教授ください。


 
      
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2021/4/28 16:49:49
「Cursor = Cursors.WaitCursor」とありますが、これは
自フォームに対する「Me.Cursor = Cursors.WaitCursor」の意味なので、
該当ウィンドウの指定は、あくまでも Me (自フォーム) のみとなります。

親フォームのカーソルも変えたいのなら、親フォームの Cursor プロパティも操作せねばなりません。

かわりに「Cursor.Current = Cursors.WaitCursor」という書き方を試してみてください。
https://dobon.net/vb/dotnet/form/cursorcurrent.html

この場合、左辺の Cursor は Me の Cursor プロパティという意味ではなく、
System.Windows.Forms 名前空間の Cursor クラスを意味します。
投稿者 N88-BASIC  (社会人) 投稿日時 2021/4/30 16:16:33
魔界の仮面弁士 さん、ご回答ありがとうございます。

ご案内いただいた、「Cursor.Current = Cursors.WaitCursor」 にて無事解決いたしました。

また、dobon.net さんの情報も参考になりました。
今までは、Control.Cursor か .Cursor のみを使用していました。

今後ともよろしくお願いします。