#46: VB.NET – impedire lo spostamento di un form

Prendo l’occasione di una discussione intercorsa oggi nella lista/forum “dotnet” di VB T&T, tra me e Riccardo Girardi, il quale aveva la necessità di trovare il modo per bloccare la posizione di un form. La gestione dell’evento di spostamento del form stesso non andava bene, perché causava un brutto sfarfallìo (flickering).

Ho trovato nel blog di Luciano Bastianello il codice in C# con cui viene realizzata questa funzionalità e l’ho convertito in VB.NET, con una correzione da parte di Riccardo Girardi:

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
   Const WM_NCLBUTTONDOWN As Integer = 161
   Const WM_SYSCOMMAND As Integer = 274
   Const HTCAPTION As Integer = 2
   Const SC_MOVE As Integer = 61456
   If (m.Msg = WM_SYSCOMMAND) AndAlso _
         (m.WParam.ToInt32() = SC_MOVE) Then
      Return
   End If
   If (m.Msg = WM_NCLBUTTONDOWN) AndAlso _
         (m.WParam.ToInt32() = HTCAPTION) Then
      Return
   End If
   MyBase.WndProc(m)
End Sub

E’ sufficiente inserire questo codice all’interno del codice del form da bloccare e il gioco è fatto.

Pubblicato il 7 ottobre 2008, in Tips con tag . Aggiungi il permalink ai segnalibri. Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: