Salut à tous,
Comment supprimer un item d'un listView?
(Est ce que je peux utiliser la touche suppr pour le faire?)
Salut à tous,
Comment supprimer un item d'un listView?
(Est ce que je peux utiliser la touche suppr pour le faire?)
Salut poppins,
C'est bien toi qui voulais mettre deux ListView en correspondance ?
J'aurais bien aimé savoir si ma réponse t'avait aidé finalement.
Poser des question c'est bien, mais un petit mot à celui qui t'a répondu c'est bien aussi :wink:
Bonjour
j'ai la reponse mais en vb.net :)
donc la solution du comment j'ai fait c'est comment recupere t-on l'item selectionner en integer pour utiliser la commande Remove de l'objet listview
si tu veux je te donne le code en vb.net et tu vois ce que tu peux faire avec !
a bientot
Merci TroXsA
Tu as très bien compris le problème
J'aimerais bien que tu m'envoie le code en vb.net
Merci d'avance,
Poppins
Pour supprimer un item de rang n:
et pour supprimer l'item sélectionné
[/]Moi avec vb 2003 javais comme ça ! :)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListView1.Items.Add("Item1") ListView1.Items.Add("Item2") ListView1.Items.Add("Item3") ListView1.Items.Add("Item4") End Sub Private Sub SupprToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupprToolStripMenuItem.Click For i As Integer = 0 To ListView1.Items.Count - 1 If ListView1.Items.Item(i).Selected = True Then ListView1.Items.Item(i).Remove() Return End If Next End Subc'est pas mieux mais sa fonctionnais bien !
Cordialement[/code]
Merci bien...
Mais est ce que je ne pourrais pas tout de même utiliser la touche suppr?
Quel est son code?
Raté, le sujet est une ListView :) et pas une ListBox :)
[/]Oui bien sur a condition de mettre la proprieté de ta form KeyPreview = True
puis mettre le code dans l'evenement KeyDown
Private Sub DelItemListView() ListView1.Focus() Try For i As Integer = 0 To ListView1.Items.Count - 1 If ListView1.Items.Item(i).Selected = True Then ListView1.Items.Item(i).Remove() Return End If Next Catch ex As Exception Exit Try End Try End Sub Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If e.KeyValue = Keys.Delete Then DelItemListView() End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListView1.Items.Add("Item1") ListView1.Items.Add("Item2") ListView1.Items.Add("Item3") ListView1.Items.Add("Item4") End Sub Private Sub SupprToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupprToolStripMenuItem.Click DelItemListView() End SubArgh je deviens vieux. Depuis le début, je me suis obstiné à penser listbox :oops:
cela dit le principe est le même et les codes semblables (ouf)
Merci beaucoup...
;) ben c'est pas grave
le principe c'est d'ouvrir le debat ouvert et de trouver des solutions ensemble c'est le but d'un forum :)
Cordialement
Désolé, mais l'expression e.KeyValue = Keys.Delete me génère une erreur.....
Salut
Pourrais tu me dire quelle est cette erreur ?
car cher moi sa fonctionne tres bien ! en vb.net et non en C#
@+
Il me génère les erreurs suivantes :
Impossible de convertir implicitement le type 'int' en 'bool'
La propriété ou l'indexeur 'System.Windows.Forms.KeyEventArgs.KeyValue' ne peut pas être assigné -- il est en lecture seule
Impossible de convertir implicitement le type 'System.Windows.Forms.Keys' en 'int'
Il y a une evidence pour moi qu'en Vb.net et C# c'est pas la meme chose :)
Il faut alors voir ce qu'il te retourne en valeur e.KeyValue et recuperer cette valeur normalement il devrais te retourné "46" et faire
e.KeyValue = 46 alors (then)
ce que je veux dire c'est que tu replace Keys.Delete par 46 et sa devrais etre bon ! :)
ça marche merci !!!!
mais il n'accepte pas l'instruction
listView1.Items.Remove(listView1.Items[View1.SelectedIndex]);
Il dit que 'System.Windows.Forms.ListView' ne contient pas de définition pour 'SelectedIndex'
[/].....
re bonjour ! :)
Il me semble que je n'est pas parler de ça "SelectedIndex"
regarde bien le code que j'ai donné
tu dois trouvé la correspondance en C#
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If e.KeyValue = Keys.Delete Then DelItemListView() End If End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListView1.Items.Add("Item1") ListView1.Items.Add("Item2") ListView1.Items.Add("Item3") ListView1.Items.Add("Item4") End SubPrivate Sub SupprToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupprToolStripMenuItem.Click DelItemListView() End SubVu que je connais pas le C# je peux pas t'aider plus :(
A bientot
Bonjour,
Il se pourrait que tu ais écrit par inadvertance un = là où tu aurais du écrire un == (dans ton if)
Quand tu rencontres un problème de ce genre, c'est une bonne idée d'inclure un bout du code en question dans le post, ça permet de t'aider mieux et plus facilement
Bonjour,
Si je puis me permettre, même si ça marche, ce n'est pas très bon.
Keys.Delete est un type énuméré et doit être testé comme tel comme tu l'as d'ailleurs très bien fait toi même dans l'exemple VB que tu as donné. Si tu remplaces par une valeur numérique tu deviens dépendant de l'implémentation et si tu compiles ton code sur une autre implémentation il risque de ne plus marcher si Keys.Delete n'y vaut pas 46.
Je pense, comme je l'ai dit dans un autre post, que l'erreur de poppins est une simple faute de frappe ou étourderie.
A voir le message d'erreur émis par le compilateur, elle avait probablement écrit
alors qu'elle devait écrire
en C# le = sert toujours à une affectation. Pour tester une valeur c'est ==
Merci :) vu que je connais pas le C# j'ai simplement trouver une solution de contournement :) ...
A bientot
Une solution de contournement, je l'avais bien compris comme ça
Tu sembles bien connaître VB, alors apprendre C# ne te posera aucune difficulté si le coeur t'en dit :)
A bientôt. C'est sympa de t'avoir comme nouveau participant régulier sur ce forum :)
:) Simpa merci
Puis j'evite d'aprendre le C# par peur de melanger les syntaxes quand je programme :wink:
A bientot
Merci pour vos efforts...
Je voulais juste préciser que e.KeyValue ==Keys.delete ne marche pas...
Avec 46, ça marche...
en tout cas, vous m'avez été d'un grand soutien, surtout que je suis nouveau avec les contrôles de c#....
Oui, mais non. Ce n'est pas (mais alors pas du tout) une bonne méthode de tester une valeur numérique sur un type énuméré. Je te renvoie à mon autre post.
Quand j'ai cité ton code c'était pour mettre en evidence que tu devais utiliser == et non =. Je me suis focalisé là dessus sans faire attention au reste. Les codes de touche ne se testent pas avec KeyValue mais avec KeyCode
Le code correct est donc
Fonctionnement garanti :)
Oui, c'est correct comme ça...
Merci :lol:
alors la c'est complement nul
Site avec Spyware plus prono a ne pas cliquer dessus
Je viens de supprimer le message dont tu parles.
Il y a en de temps en temps. Mais on surveille ;)
Ok ....
Je vais devois formater mon PC car le Spy installer j'arrive pas a m'en debarasser avec tout les anti-Spy connu (free) de toute facon mon PC en avais besoin ;) (du formatage)
@+