Bonjour,
je debute et j'arrive a charger un treeview a partir d'un dataset ( en
iterant).
mais maintenant je voudrais connaitre l'ID de l'enregistrement selectionné
dans le treeview, et je sais pas comment faire.
Est-ce possible d'avoir une piste.
merci d'avance les pros
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bull
Bonsoir Frederix,
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus complexe.
-- Cordialement, Bull
Frederix a écrit :
Bonjour, je debute et j'arrive a charger un treeview a partir d'un dataset ( en iterant). mais maintenant je voudrais connaitre l'ID de l'enregistrement selectionné dans le treeview, et je sais pas comment faire. Est-ce possible d'avoir une piste. merci d'avance les pros
Fred
Bonsoir Frederix,
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus
complexe.
--
Cordialement,
Bull
Frederix a écrit :
Bonjour,
je debute et j'arrive a charger un treeview a partir d'un dataset ( en
iterant).
mais maintenant je voudrais connaitre l'ID de l'enregistrement selectionné
dans le treeview, et je sais pas comment faire.
Est-ce possible d'avoir une piste.
merci d'avance les pros
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus complexe.
-- Cordialement, Bull
Frederix a écrit :
Bonjour, je debute et j'arrive a charger un treeview a partir d'un dataset ( en iterant). mais maintenant je voudrais connaitre l'ID de l'enregistrement selectionné dans le treeview, et je sais pas comment faire. Est-ce possible d'avoir une piste. merci d'avance les pros
Fred
Zoury
Salut ! :O)
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le
node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus complexe.
Voici un exemple qui conserve le DataRow de l'enregistrement dans le Tag du noeud (désolé pour les longues lignes). Tu n'as qu'à ouvrir un nouveau projet de type "Application Windows" et y coller le code suivant : '*** Option Explicit On
Imports System.Data
Public Class Form1 Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New() MyBase.New()
'Cet appel est requis par le Concepteur Windows Form. InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub
'Requis par le Concepteur Windows Form Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 'Elle peut être modifiée en utilisant le Concepteur Windows Form. 'Ne la modifiez pas en utilisant l'éditeur de code. Friend WithEvents TreeView1 As System.Windows.Forms.TreeView Friend WithEvents Label1 As System.Windows.Forms.Label <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.TreeView1 = New System.Windows.Forms.TreeView Me.Label1 = New System.Windows.Forms.Label Me.SuspendLayout() ' 'TreeView1 ' Me.TreeView1.ImageIndex = -1 Me.TreeView1.Location = New System.Drawing.Point(8, 8) Me.TreeView1.Name = "TreeView1" Me.TreeView1.SelectedImageIndex = -1 Me.TreeView1.Size = New System.Drawing.Size(376, 304) Me.TreeView1.TabIndex = 0 ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(8, 320) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(376, 128) Me.Label1.TabIndex = 1 Me.Label1.Text = "Label1" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(392, 454) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.TreeView1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dt.PrimaryKey = New DataColumn() {dt.Columns("ID")}
Return dt
End Function
Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
Dim dr As DataRow dr = DirectCast(e.Node.Tag, DataRow)
Select Case dr.Table.TableName Case "COMPAGNIE" Label1.Text = String.Format("Compagnie ID : {0}{1}Ville : {2}", dr("ID"), vbNewLine, dr("VILLE")) Case "EMPLOYE" Label1.Text = String.Format("Employé ID : {0}{1}Nom : {2} {3}{1}Date d'embauche : {4}", dr("ID"), vbNewLine, dr("NOM"), dr("PRENOM"), CType(dr("DATE_EMBAUCHE"), DateTime).ToLongDateString()) End Select
End Sub
End Class '*** -- Cordialement Yanick MVP pour Visual Basic
Salut ! :O)
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le
node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus
complexe.
Voici un exemple qui conserve le DataRow de l'enregistrement dans le Tag du
noeud (désolé pour les longues lignes). Tu n'as qu'à ouvrir un nouveau
projet de type "Application Windows" et y coller le code suivant :
'***
Option Explicit On
Imports System.Data
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
Friend WithEvents Label1 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.TreeView1 = New System.Windows.Forms.TreeView
Me.Label1 = New System.Windows.Forms.Label
Me.SuspendLayout()
'
'TreeView1
'
Me.TreeView1.ImageIndex = -1
Me.TreeView1.Location = New System.Drawing.Point(8, 8)
Me.TreeView1.Name = "TreeView1"
Me.TreeView1.SelectedImageIndex = -1
Me.TreeView1.Size = New System.Drawing.Size(376, 304)
Me.TreeView1.TabIndex = 0
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 320)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(376, 128)
Me.Label1.TabIndex = 1
Me.Label1.Text = "Label1"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(392, 454)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TreeView1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Le plus simple est d'enregistrer un objet (par ex. ton id) dans le
node.tag
Tu peux y mettre aussi bien un integer, qu'un objet d'une classe plus complexe.
Voici un exemple qui conserve le DataRow de l'enregistrement dans le Tag du noeud (désolé pour les longues lignes). Tu n'as qu'à ouvrir un nouveau projet de type "Application Windows" et y coller le code suivant : '*** Option Explicit On
Imports System.Data
Public Class Form1 Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New() MyBase.New()
'Cet appel est requis par le Concepteur Windows Form. InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub
'Requis par le Concepteur Windows Form Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 'Elle peut être modifiée en utilisant le Concepteur Windows Form. 'Ne la modifiez pas en utilisant l'éditeur de code. Friend WithEvents TreeView1 As System.Windows.Forms.TreeView Friend WithEvents Label1 As System.Windows.Forms.Label <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.TreeView1 = New System.Windows.Forms.TreeView Me.Label1 = New System.Windows.Forms.Label Me.SuspendLayout() ' 'TreeView1 ' Me.TreeView1.ImageIndex = -1 Me.TreeView1.Location = New System.Drawing.Point(8, 8) Me.TreeView1.Name = "TreeView1" Me.TreeView1.SelectedImageIndex = -1 Me.TreeView1.Size = New System.Drawing.Size(376, 304) Me.TreeView1.TabIndex = 0 ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(8, 320) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(376, 128) Me.Label1.TabIndex = 1 Me.Label1.Text = "Label1" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(392, 454) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.TreeView1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load