Savoir comment fonctionne un code.
PouleFauna
Messages postés
107
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai trouvé un code sur Internet mais je ne sais pas comment on fait pour l'intégrer sur un projet. Voici le code :
Ce code permet de resizer une form dont la bordure est en none.
J'ai trouvé un code sur Internet mais je ne sais pas comment on fait pour l'intégrer sur un projet. Voici le code :
Imports System.Runtime.InteropServices Public Class FormResizer Dim TargetForm As Form Private _BorderWidth As Integer Private _ResizeDirect As resizeDirectection = resizeDirectection.None ''' <summary> ''' Make borderless Form resizeable. ''' </summary> ''' <param name="value">As Form</param> ''' <param name="borderWidth">(Optional) BorderWidth as Integer (Default = 4)</param> Sub New(ByVal value As Form, Optional borderWidth As Integer = 4) TargetForm = value _BorderWidth = borderWidth AddHandler TargetForm.MouseDown, AddressOf Form_MouseDown AddHandler TargetForm.MouseMove, AddressOf Form_MouseMove End Sub Public Enum resizeDirectection None = 0 Left = 1 TopLeft = 2 Top = 3 TopRight = 4 Right = 5 BottomRight = 6 Bottom = 7 BottomLeft = 8 End Enum Public Property resizeDirect() As resizeDirectection Get Return _ResizeDirect End Get Set(ByVal value As resizeDirectection) _ResizeDirect = value Select Case value Case resizeDirectection.Left TargetForm.Cursor = Cursors.SizeWE Case resizeDirectection.Right TargetForm.Cursor = Cursors.SizeWE Case resizeDirectection.Top TargetForm.Cursor = Cursors.SizeNS Case resizeDirectection.Bottom TargetForm.Cursor = Cursors.SizeNS Case resizeDirectection.BottomLeft TargetForm.Cursor = Cursors.SizeNESW Case resizeDirectection.TopRight TargetForm.Cursor = Cursors.SizeNESW Case resizeDirectection.BottomRight TargetForm.Cursor = Cursors.SizeNWSE Case resizeDirectection.TopLeft TargetForm.Cursor = Cursors.SizeNWSE Case Else TargetForm.Cursor = Cursors.Default End Select End Set End Property <DllImport("user32.dll")> Public Shared Function ReleaseCapture() As Boolean End Function <DllImport("user32.dll")> Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer End Function Private Const WM_NCLBUTTONDOWN As Integer = &HA1 Private Const HTBORDER As Integer = 18 Private Const HTBOTTOM As Integer = 15 Private Const HTBOTTOMLEFT As Integer = 16 Private Const HTBOTTOMRIGHT As Integer = 17 Private Const HTCAPTION As Integer = 2 Private Const HTLEFT As Integer = 10 Private Const HTRIGHT As Integer = 11 Private Const HTTOP As Integer = 12 Private Const HTTOPLEFT As Integer = 13 Private Const HTTOPRIGHT As Integer = 14 Private Sub ResizeForm(ByVal direction As resizeDirectection) Dim dir As Integer = -1 Select Case direction Case resizeDirectection.Left dir = HTLEFT Case resizeDirectection.TopLeft dir = HTTOPLEFT Case resizeDirectection.Top dir = HTTOP Case resizeDirectection.TopRight dir = HTTOPRIGHT Case resizeDirectection.Right dir = HTRIGHT Case resizeDirectection.BottomRight dir = HTBOTTOMRIGHT Case resizeDirectection.Bottom dir = HTBOTTOM Case resizeDirectection.BottomLeft dir = HTBOTTOMLEFT End Select If dir <> -1 Then ReleaseCapture() SendMessage(TargetForm.Handle, WM_NCLBUTTONDOWN, dir, 0) End If End Sub Private Sub Form_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = Windows.Forms.MouseButtons.Left And TargetForm.WindowState <> FormWindowState.Maximized Then ResizeForm(resizeDirect) End If End Sub Private Sub Form_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Location.X < _BorderWidth And e.Location.Y < _BorderWidth Then resizeDirect = resizeDirectection.TopLeft ElseIf e.Location.X < _BorderWidth And e.Location.Y > TargetForm.Height - _BorderWidth Then resizeDirect = resizeDirectection.BottomLeft ElseIf e.Location.X > TargetForm.Width - _BorderWidth And e.Location.Y > TargetForm.Height - _BorderWidth Then resizeDirect = resizeDirectection.BottomRight ElseIf e.Location.X > TargetForm.Width - _BorderWidth And e.Location.Y < _BorderWidth Then resizeDirect = resizeDirectection.TopRight ElseIf e.Location.X < _BorderWidth Then resizeDirect = resizeDirectection.Left ElseIf e.Location.X > TargetForm.Width - _BorderWidth Then resizeDirect = resizeDirectection.Right ElseIf e.Location.Y < _BorderWidth Then resizeDirect = resizeDirectection.Top ElseIf e.Location.Y > TargetForm.Height - _BorderWidth Then resizeDirect = resizeDirectection.Bottom Else resizeDirect = resizeDirectection.None End If End Sub End Class
Ce code permet de resizer une form dont la bordure est en none.
A voir également:
- Savoir comment fonctionne un code.
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment créer un qr code - Guide
4 réponses
Il me semble que te l'as déjà dit, mais bon.
Prendre des codes "au hasard" sur internet tout en ayant fait l'impasse sur l'apprentissage des bases (toutes tes questions montrent qu'il te manque des bases) n'est pas la bonne méthode pour avancer.
On se croit meilleur que les autres, on n'a pas besoin d'apprendre des trucs simples qui coulent de source, etc...
J'ai fait pareil, j'ai bidouillé pendant un an. J'ai fini par ravaler ma fierté, j'ai acheté un livre, j'ai du le lire en 4 ou 5 jours. Après j'ai pris mon projet, je l'ai mis à la poubelle et l'ai refait en moins d'un moi.
Au final, j'ai perdu un an.
Le code que tu as trouvé est limpide sur son utilisation.
Je ne l'avais pas lu avant ma première réponse et là je l'ai juste survolé jusqu'au constructeur.
Suite à ça, je l'ai copié collé dans mon projet de test, ajouté une ligne au constructeur de mon formulaire et ça marche.
La différence entre mon approche et la tienne c'est que j'ai les bases pour savoir ce qu'est un constructeur, à quoi ça sert dans un objet, et comment s'en servir.
Et aussi, voir quels types de paramètres il faut lui donner.
Le meilleur conseil que je puisse te donner c'est de laisser ton projet de coté quelques jours et de suivre un cours en ligne
Celui de Plasserre est très bien https://plasserre.developpez.com/cours/vb-net/ il s'adresse principalement au codeur qui vient de VB6 ou VBA (et dans ton historique, il y a des questions sur VBA), mais prend l'objet pour un effet de mode alors que c'est l'essence de .Net
Celui d'openclassroom est un peu moins accessible mais il met l'objet au coeur de l'apprentissage
Prendre des codes "au hasard" sur internet tout en ayant fait l'impasse sur l'apprentissage des bases (toutes tes questions montrent qu'il te manque des bases) n'est pas la bonne méthode pour avancer.
On se croit meilleur que les autres, on n'a pas besoin d'apprendre des trucs simples qui coulent de source, etc...
J'ai fait pareil, j'ai bidouillé pendant un an. J'ai fini par ravaler ma fierté, j'ai acheté un livre, j'ai du le lire en 4 ou 5 jours. Après j'ai pris mon projet, je l'ai mis à la poubelle et l'ai refait en moins d'un moi.
Au final, j'ai perdu un an.
Le code que tu as trouvé est limpide sur son utilisation.
Je ne l'avais pas lu avant ma première réponse et là je l'ai juste survolé jusqu'au constructeur.
Suite à ça, je l'ai copié collé dans mon projet de test, ajouté une ligne au constructeur de mon formulaire et ça marche.
La différence entre mon approche et la tienne c'est que j'ai les bases pour savoir ce qu'est un constructeur, à quoi ça sert dans un objet, et comment s'en servir.
Et aussi, voir quels types de paramètres il faut lui donner.
Le meilleur conseil que je puisse te donner c'est de laisser ton projet de coté quelques jours et de suivre un cours en ligne
Celui de Plasserre est très bien https://plasserre.developpez.com/cours/vb-net/ il s'adresse principalement au codeur qui vient de VB6 ou VBA (et dans ton historique, il y a des questions sur VBA), mais prend l'objet pour un effet de mode alors que c'est l'essence de .Net
Celui d'openclassroom est un peu moins accessible mais il met l'objet au coeur de l'apprentissage