1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
| ' ¦
'Titre: Gestion du TreeView du projet ¦
' ¦
' Programmeur: Bruno Scheidegger 'Client: XXX ¦
' ¦
'Création le 11.04.2012 'Modification le 12.04.2012 ¦
' 'Modifié par: Bruno Scheidegger ¦
'----------------------------------------------------------------------------------------------------
Imports System
Imports System.Windows.Media.Drawing
Imports System.Windows
Imports System.IO
Imports System.Windows.Controls
Imports System.Windows.Forms
Public Class TreeProject
'héritage sur l'objet TreeView Item
Inherits TreeViewItem
'Déclaration des varibles utilisées
Dim Arborescence As System.Windows.Controls.TreeView 'TreeView de la visualisation
Dim delete As New System.Windows.Controls.MenuItem 'Variable de delet du menu contextuel (clic droit sur un item du treeview)
Dim add As New System.Windows.Controls.MenuItem 'Variable d'ajout nouvelle presse du menu contextuel (clic droit sur un item du treeview)
Dim Rename As New System.Windows.Controls.MenuItem 'Variable de rename d'une presse du menu contextuel (clic droit sur un item du treeview)
'Création du treeView_________________________________________________________________________________________________________________________________________________________________________________
Public Sub New(ByVal Projet_1 As System.Windows.Controls.TreeView)
'Attribution du nom de projet par défaut à la création
Arborescence = Projet_1
'Affectation du nom à l'item principl du treeview
Me.Header = "Projet " & (Projet_1.Items.Count + 1)
'Création de l'objet (TreeView si l'élement est dépliable ou TExt bloc si il ne l'est pas)
Dim press As New TreeViewItem
'Affectation du nom du premier enfant du treeview
press.Header = "Presse"
'Ajout de du nouvel item
Me.Items.Add(press)
'Même procèdure pour tout les autres élement composant le treeview
Dim commande As New TextBlock
commande.Text = "Commande"
press.Items.Add(commande)
Dim materiel As New TreeViewItem
materiel.Header = "Materiel"
press.Items.Add(materiel)
Dim text As New TextBlock
text.Text = "D410"
materiel.Items.Add(text)
text = New TextBlock
text.Text = "TM31"
materiel.Items.Add(text)
text = New TextBlock
text.Text = "PC"
materiel.Items.Add(text)
Dim Variable As New TextBlock
Variable.Text = "Variable"
press.Items.Add(Variable)
Dim Prg As New TreeViewItem
Prg.Header = "Programme"
press.Items.Add(Prg)
'Procèdure d'ouvertur du menu contextuel________________________________________________________________________________________________________________________________________________________
'Création du menu
Me.ContextMenu = New System.Windows.Controls.ContextMenu
'Ajout du bouton "Ajouter une presse"
add.Header = "Ajouter une presse"
add.Name = "AddButton"
Me.ContextMenu.Items.Add(add)
'Ajout du bouton "Effacer"
delete.Header = "Effacer"
delete.Name = "DeleteButton"
Me.ContextMenu.Items.Add(delete)
'Ajout du bouton "Renammer"
Rename.Header = "Renommer"
delete.Name = "RenameButton"
Me.ContextMenu.Items.Add(Rename)
'Gestion de l'évenement clic de souris sur les boutons du menu contextuel (une instruction similaire par bouton)
AddHandler Me.add.Click, AddressOf add_press
AddHandler Me.delete.Click, AddressOf DelPress
AddHandler Me.Rename.Click, AddressOf RenamePress
End Sub
' 1) Macro d'ajout de presse (nouvelle arborescence de projet)
Private Sub add_press()
Me.Arborescence.Items.Add(New TreeProject(Me.Arborescence))
End Sub
' 2) Macro de suppression d'une presse du TreeView principal
Private Sub DelPress()
'Contrôl si il y a plus de une presse (Eviter de supprimmer toutes les presses et ne plus avoir d'élement dans le treeview
If Me.Arborescence.Items.Count > 1 Then
Me.Arborescence.Items.Remove(Me)
End If
End Sub
' 3) Macro de rename de presse
Private Sub RenamePress()
'Déclration de variables
Dim tmp As String 'Nouveau nom
'Ouverture d'une fenêtre de rename
tmp = Interaction.InputBox("Renommez votre projet", "Renommer", Me.Header)
'Vérifie qu'on ne rename pas avec rien
If tmp <> "" And tmp <> Me.Header Then
'Contrôl si une presse ne comporte pas déjà ce nom
For Each element As TreeViewItem In Arborescence.Items
If element.Header = tmp Then
MsgBox("Un projet porte déjà ce nom") 'Message d'erreur en cas de doublon
Exit Sub
End If
Next
'Changement de nom
Me.Header = tmp
End If
End Sub
' 4) Ouvertur de la fenêtre matériel
Private Sub TreeView1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Arborescence.NodeMouseClick
Dim item As System.Windows.Forms.TreeNode = Me.GetNodeAt(e.Location)
If item IsNot Nothing Then
If item.Text = "Toto" Then
MsgBox(item.Text)
End If
End If
End Sub
Private Function GetNodeAt(ByVal point As Drawing.Point) As TreeNode
Throw New NotImplementedException
End Function
End Class |