Maj listview [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
18 février 2014
-
Messages postés
7
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
14 juin 2011
-
salut,
mise a jour des items d'un listview ( labeledit=true)
controles et si erreur remettre valeur initiale

using System;
using System.Windows.Forms;
namespace test1
{	
public partial class Form1 : Form
{	
public Form1()
{	
InitializeComponent();
}
private void Form1_Load( object sender, EventArgs e )
{	
for ( int n=1; n<10; n++ )
{	
listView1.Items.Add( ( n*100 ).ToString() );
}
}

String avant;

void listView1_BeforeLabelEdit( object sender, LabelEditEventArgs e )
{	
ListView lw = ( ListView )sender;
avant=lw.Items[e.Item].SubItems[0].Text;
}
void listView1_AfterLabelEdit( object sender, LabelEditEventArgs e )
{	
ListView lw = ( ListView )sender;
try	{	
int res=Int16.Parse( e.Label );
}
catch {	
this.Text="erreur";

//	lw.Items[e.Item].SubItems[0].Text=avant;

//	lw.Refresh();
//	lw.RedrawItems( e.Item, e.Item, false );
//	lw.RedrawItems( e.Item, e.Item, true );

//	lw.Items.RemoveAt( e.Item );
//	lw.Items.Add( avant );
}
}
}
}



quoi que je tente, la valeur initiale
n'est pas ré-affichée.
(
lw.Items[e.Item].SubItems[0].Text=avant;
lw.Refresh();
lw.RedrawItems( e.Item, e.Item, false );
lw.RedrawItems( e.Item, e.Item, true );

lw.Items.RemoveAt( e.Item );
lw.Items.Add( avant );

...
)

comment faire ?
merci.

3 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Bonjour,

pour retrouver le texte original, il faut faire :

e.CancelEdit = true;


dans ton catch !


Sébastien FERRAND
Ingénieur Concepteur Senior
Microsoft Visual C# MVP 2004 - 2009
Blog Photo
Messages postés
13
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
18 février 2014

je me doutais bien que c'était "tout simple"
merci beaucoup «sebmafate», ça baigne.
@+
Messages postés
7
Date d'inscription
vendredi 19 mars 2010
Statut
Membre
Dernière intervention
14 juin 2011

Bonjour sebmafate

j'ai une ListView que j'ai utilise comme une facture de vente.
J'ai trois colonnes (Description, Quantité, prix).
j'ai aussi deux boutons accepter qui enregistre l'information de la ListView dans la ma bd et le bouton annuler avec lui j'ai un petit problème.
parce que si on fait annuler j'aurais besoin d'effacer la dernière ligne de ma ListView, mais en ce moment annuler efface tout le contenu de ma ListView incluant mes entêtes de colonnes ça doit être parce que j'utilise ça :

lvFacture.Clear();
lblTotal.Text = "0,00";

Mais je ne sais pas quoi d'autre utiliser pour efface ligne par ligne dans ma ListView.

merci beaucoup