Change cursor VB.NET

I cannot change the cursor when this is a ToolStripButton.click event.

I have 2 buttons that are called "Rechercher".

EDITED: only the button works. ToolStripButton seems to have undone my cursor ... thanks for reference

Public Class FenetrePrincipale Private WithEvents _btnRechercher As New Windows.Forms.ToolStripButton("Rechercher") Private WithEvents btnRechercherAccesBtn As New Button Private Sub Rechercher(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _btnRechercher.Click, btnRechercherAccesBtn.Click Try Me.Cursor = Cursors.WaitCursor 'WAITING FOR THE CODE TO FINISH (2 sec) Finally Me.Cursor = Cursors.Default End Try End Sub End Class 
+4
source share
2 answers

This is the only way to make me work.

 <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function Public Class FenetrePrincipale Private WithEvents _btnRechercher As New Windows.Forms.ToolStripButton("Rechercher") Private WithEvents btnRechercherAccesBtn As New Button Private Sub Rechercher(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRechercherAccesBtn.Click Try Me.Cursor = Cursors.WaitCursor 'code... Finally Me.Cursor = Cursors.Default End Try End Sub Private Sub RechercherToolStripButton(ByVal sender As Object, ByVal e As System.EventArgs) Handles _btnRechercher.Click Me.UseWaitCursor = True SendMessage(Me.Handle, &H20, Me.Handle, New IntPtr(1)) Rechercher(Nothing, Nothing) Me.UseWaitCursor = False End Sub End Class 
+3
source

Maybe you should try something like:

 Private Sub MainFrame_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Search() End Sub Private Sub Search() Try Me.Cursor = Cursors.WaitCursor UseWaitCursor = True Application.DoEvents() Threading.Thread.Sleep(1000) 'WAITING FOR THE CODE TO FINISH Finally UseWaitCursor = False Me.Cursor = Cursors.Default Application.DoEvents() End Try End Sub 

The problem is that you don't have any pause where the code needs to be executed in order for it to perform fast work.

+2
source

Source: https://habr.com/ru/post/1394679/


All Articles