Comment rediriger le résultat d’une commande console sur une form Un petit exemple pour vous montrer comment grâce à System.Management et System.ServiceProcess il est possible de lancer des commandes dans la console windows et de rediriger le résultat sur une form. Dans cet exemple …
Création de controles dynamiques
Nn simple exemple permettant de montrer comment créer un contrôle dynamique, lui ajouter des propriétés, évènements puis permettre a l’utilisateur de pouvoir déplacer et redimensionner les contrôles a sa guise sur sa forme
l’exemple à été fait sur des richtextbox
j’ai gérer le redimensionnement et le déplacement sur le bouton gauche de la souris + l’appui sur la touche CTRL ou SHIFT qui me paraissait pratique , de plus sur un RTB le bouton gauche de la souris sert a sélectionner du texte.
pour déplacer :
maintenez la touche CTRL enfoncé et le bouton gauche de la souris pour déplacer le contrôle
pour redimensionner
maintenez la touche SHIFT enfoncé et le bouton gauche de la souris au dessus de contrôle puis redimensionner
créer un projet avec une form et ajouter le code suivant :
Public Class Form1 Dim ctrlEnCours As RichTextBox 'le control en cours sur lequel on travaille Dim poscourante As Point 'la position de la souris sur le control en cours Dim deplace As Boolean 'si le controle doit se deplacer Dim changetaille As Boolean 'si le controle va changer de taille Dim positionClickForm As Point 'position de la souris sur la form Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'CRTL + bouton gauche souris sur un control pour le deplacer 'SHIFT + bouton gauche souris pour redimentionner 'creatin de 3 controles pour exemples 'leur taille est definie à 70/100, tx et ty 'leur position commence au coordonnée 50,50 de la feuille cx et cy Dim i, cx, cy, tx, ty As Integer : tx = 70 : ty = 100 : cx = 50 : cy = 50 For i = 1 To 3 creer_bouton(i, tx, ty, cx, cy) cx = cx + tx + 10 'ecart de 10 entre chaque controle Next i End Sub Private Sub creer_bouton(ByVal numcase As Integer, ByVal taillex As Integer, ByVal tailley As Integer, ByVal xcb As Integer, ByVal ycb As Integer) Dim CtrlRtb As New System.Windows.Forms.RichTextBox 'DEFINITON DES PROPRIETES 'son nom CtrlRtb.Name = "Rtb_" & (numcase + 1) 'sa taille CtrlRtb.Size = New System.Drawing.Size(taillex, tailley) 'sa position sur la form CtrlRtb.Location = New System.Drawing.Point(xcb, ycb) 'multiligne = oui CtrlRtb.Multiline = True 'visible=oui CtrlRtb.Visible = True 'pas de bordure CtrlRtb.BorderStyle = BorderStyle.None 'ajout du controle à la form Me.Controls.Add(CtrlRtb) 'DEFINITION DES EVENEMENT 'ajout des evenement utiles au deplacement et redimention 'des controls précedement crées AddHandler CtrlRtb.MouseDown, AddressOf ctrl_MouseDown AddHandler CtrlRtb.MouseMove, AddressOf ctrl_MouseMove AddHandler CtrlRtb.KeyDown, AddressOf crtl_KeyDown AddHandler CtrlRtb.KeyUp, AddressOf crtl_KeyUp End Sub Private Sub crtl_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) 'si on releve ta touche , 'on annule le deplacement et le changement de taille 'pour permettre de travailler sur le texte deplace = False changetaille = False End Sub Private Sub crtl_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ' Vérification si la touche controle est active 'auquel cas on active le deplacement If e.KeyCode = Keys.ControlKey Then deplace = True End If 'verification si la touche shif est activé 'auquel cas on active le changement de taille If e.KeyCode = Keys.ShiftKey Then changetaille = True End If End Sub Private Sub ctrl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) ' si le bouton gauche de la souris est enfoncé 'on recupere la position If (e.Button = MouseButtons.Left) Then poscourante = e.Location End If End Sub Private Sub ctrl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) 'si la souris passe sur le controle , ' il devient le controle courant ctrlEnCours = sender 'on affiche ses bordures (pour mieux travailler ctrlEnCours.BorderStyle = BorderStyle.FixedSingle ' Vérification si bouton gauche de la souris est bien enfoncé If (e.Button = MouseButtons.Left) Then 'ici on deplace le controle If deplace = True Then ' Calcul de la nouvelle position du contrôle ctrlEnCours.Location = New Point(ctrlEnCours.Location.X + e.X - poscourante.X, ctrlEnCours.Location.Y + e.Y - poscourante.Y) End If 'ici on change la taille du controle If changetaille = True Then 'calcul de la nouvelle taille du controle If e.Y > ctrlEnCours.Height Then 'longeur ctrlEnCours.Height = ctrlEnCours.Location.Y + e.Y Else ctrlEnCours.Height = e.Y End If If e.X > ctrlEnCours.Width Then 'largeur ctrlEnCours.Width = ctrlEnCours.Location.X + e.X Else ctrlEnCours.Width = e.X End If End If End If End Sub Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown ' si le bouton gauche de la souris est enfoncé 'on recupere la position If (e.Button = MouseButtons.Left) Then positionClickForm = e.Location End If End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove 'si on se trouve sur la feuille et non au dessus d'un controle richtextbox 'on enleve les bordure du RTB sur lequel on etait et 'on annule le controle en cours If Not ctrlEnCours Is Nothing Then ctrlEnCours.BorderStyle = BorderStyle.None ctrlEnCours = Nothing End If End Sub End Class
You must be logged in to post a comment.