Détecter item sélectionné dans une listview pour maj info tps reel ?
1 réponse
ZoroBozo
Salut à tous,
J'ai une listview pour laquelle je voudrais afficher des info (une sorte
de detail contenant des choses qui ne sont pas montrées sur la ligne de
l'item en liste) de l'item sélectionné courant en temps réel, dans un
textbox multi-lignes.
Récupérer les info en question à partir de l'item sélectionné n'est pas
un problème, mais je ne vois pas exactement quels évènements considérer
pour que cette zone info soit bien mise à jour à chaque changement de
sélection ; achant qu'intem peut être sélectionné à la souris (là, je
peux déclencher au maliste_Click()) ou au clavier (peut-être au
maliste_KeyPress() ?)
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
ZoroBozo
In article , says...
Salut à tous,
J'ai une listview pour laquelle je voudrais afficher des info (une sorte de detail contenant des choses qui ne sont pas montrées sur la ligne de l'item en liste) de l'item sélectionné courant en temps réel, dans un textbox multi-lignes.
Bon apparemment, je m'étais imaginé ça plus compliqué (parfois, on se demande), mais déclencher sur les évènements click et keyup de la liste, ainsi qu'à son chargement (puisque par défaut, le premier élément semble sélectionné) suffit.
Un tit projet test :) Copie du contenu de Form1.frm d'un Projet1.vbp
VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" Begin VB.Form Form1 Caption = "Form1" ClientHeight = 5190 ClientLeft = 60 ClientTop = 345 ClientWidth = 6225 LinkTopic = "Form1" ScaleHeight = 5190 ScaleWidth = 6225 StartUpPosition = 3 'Windows Default Begin VB.TextBox text1 Height = 285 Left = 465 TabIndex = 0 Text = "Démontre comment détecter élément actuellement sélectionné en liste" Top = 150 Width = 5205 End Begin MSComctlLib.ListView list1 Height = 3420 Left = 465 TabIndex = 1 Top = 570 Width = 5205 _ExtentX = 9181 _ExtentY = 6033 View = 3 LabelWrap = 0 'False HideSelection = 0 'False _Version = 393217 ForeColor = -2147483640 BackColor = -2147483643 BorderStyle = 1 Appearance = 1 NumItems = 1 BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A- 00C0F0283628} Text = "Elt." Object.Width = 2540 EndProperty End Begin VB.Label label1 AutoSize = -1 'True Caption = "Elément actuel :" Height = 195 Left = 495 TabIndex = 2 Top = 4245 Width = 1140 End Begin VB.Label label2 Alignment = 2 'Center BorderStyle = 1 'Fixed Single Height = 285 Left = 1725 TabIndex = 3 Top = 4230 Width = 3840 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Sub info() label2.Caption = list1.SelectedItem.Key End Sub
Private Sub Form_Load() For i = 1 To 30 elt = "A" & Str(i) list1.ListItems.Add , elt, elt info Next End Sub
Private Sub list1_Click() info End Sub
Private Sub list1_KeyUp(KeyCode As Integer, Shift As Integer) info End Sub
In article <MPG.24ef9dc7a21f4f5398983a@news.free.fr>, nonnon@pas.de.spam
says...
Salut à tous,
J'ai une listview pour laquelle je voudrais afficher des info (une sorte
de detail contenant des choses qui ne sont pas montrées sur la ligne de
l'item en liste) de l'item sélectionné courant en temps réel, dans un
textbox multi-lignes.
Bon apparemment, je m'étais imaginé ça plus compliqué (parfois, on se
demande), mais déclencher sur les évènements click et keyup de la liste,
ainsi qu'à son chargement (puisque par défaut, le premier élément semble
sélectionné) suffit.
Un tit projet test :) Copie du contenu de Form1.frm d'un Projet1.vbp
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 5190
ClientLeft = 60
ClientTop = 345
ClientWidth = 6225
LinkTopic = "Form1"
ScaleHeight = 5190
ScaleWidth = 6225
StartUpPosition = 3 'Windows Default
Begin VB.TextBox text1
Height = 285
Left = 465
TabIndex = 0
Text = "Démontre comment détecter élément
actuellement sélectionné en liste"
Top = 150
Width = 5205
End
Begin MSComctlLib.ListView list1
Height = 3420
Left = 465
TabIndex = 1
Top = 570
Width = 5205
_ExtentX = 9181
_ExtentY = 6033
View = 3
LabelWrap = 0 'False
HideSelection = 0 'False
_Version = 393217
ForeColor = -2147483640
BackColor = -2147483643
BorderStyle = 1
Appearance = 1
NumItems = 1
BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-
00C0F0283628}
Text = "Elt."
Object.Width = 2540
EndProperty
End
Begin VB.Label label1
AutoSize = -1 'True
Caption = "Elément actuel :"
Height = 195
Left = 495
TabIndex = 2
Top = 4245
Width = 1140
End
Begin VB.Label label2
Alignment = 2 'Center
BorderStyle = 1 'Fixed Single
Height = 285
Left = 1725
TabIndex = 3
Top = 4230
Width = 3840
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Sub info()
label2.Caption = list1.SelectedItem.Key
End Sub
Private Sub Form_Load()
For i = 1 To 30
elt = "A" & Str(i)
list1.ListItems.Add , elt, elt
info
Next
End Sub
Private Sub list1_Click()
info
End Sub
Private Sub list1_KeyUp(KeyCode As Integer, Shift As Integer)
info
End Sub
J'ai une listview pour laquelle je voudrais afficher des info (une sorte de detail contenant des choses qui ne sont pas montrées sur la ligne de l'item en liste) de l'item sélectionné courant en temps réel, dans un textbox multi-lignes.
Bon apparemment, je m'étais imaginé ça plus compliqué (parfois, on se demande), mais déclencher sur les évènements click et keyup de la liste, ainsi qu'à son chargement (puisque par défaut, le premier élément semble sélectionné) suffit.
Un tit projet test :) Copie du contenu de Form1.frm d'un Projet1.vbp
VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" Begin VB.Form Form1 Caption = "Form1" ClientHeight = 5190 ClientLeft = 60 ClientTop = 345 ClientWidth = 6225 LinkTopic = "Form1" ScaleHeight = 5190 ScaleWidth = 6225 StartUpPosition = 3 'Windows Default Begin VB.TextBox text1 Height = 285 Left = 465 TabIndex = 0 Text = "Démontre comment détecter élément actuellement sélectionné en liste" Top = 150 Width = 5205 End Begin MSComctlLib.ListView list1 Height = 3420 Left = 465 TabIndex = 1 Top = 570 Width = 5205 _ExtentX = 9181 _ExtentY = 6033 View = 3 LabelWrap = 0 'False HideSelection = 0 'False _Version = 393217 ForeColor = -2147483640 BackColor = -2147483643 BorderStyle = 1 Appearance = 1 NumItems = 1 BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A- 00C0F0283628} Text = "Elt." Object.Width = 2540 EndProperty End Begin VB.Label label1 AutoSize = -1 'True Caption = "Elément actuel :" Height = 195 Left = 495 TabIndex = 2 Top = 4245 Width = 1140 End Begin VB.Label label2 Alignment = 2 'Center BorderStyle = 1 'Fixed Single Height = 285 Left = 1725 TabIndex = 3 Top = 4230 Width = 3840 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Sub info() label2.Caption = list1.SelectedItem.Key End Sub
Private Sub Form_Load() For i = 1 To 30 elt = "A" & Str(i) list1.ListItems.Add , elt, elt info Next End Sub
Private Sub list1_Click() info End Sub
Private Sub list1_KeyUp(KeyCode As Integer, Shift As Integer) info End Sub