1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : janvier 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut Eviter le déclenchement automatique SelectedIndexChanged du ListBox DataSource à l'ouverture de la form

    Bonsoir à tous
    voici mon problème:
    j'ai une classe "Mess" qui contient des messages avec comme propriétés un "Id" (du message) et le "Texte" du message
    j'ai une liste "List<MESS>LMess" qui contient tous les objets Mess
    Dans un Winform je garnis un listbox "lbxMess" par Datasource=Lmess et Display Member="Id". La listbox est garnie par programme dans Form_Load.
    et enfin j'ai une méthode "LbxMess_SelectedIndexChanged" qui permet d'afficher le texte du message quand je clique sur une ligne du listbox.
    Le Pb est que le "LbxMess_SelectedIndexChanged" est systématiquement appelé à l'ouverture du winform sur la ligne 0 du listbox qui est surlignée. Ce que je voudrais éviter
    Si je garnis le listbox directement à partir de la Lmess avec un foreach ... élément par élément je n'ai pas le pb, mais c e n'est pas ce que je veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    //la classe Mess
     public class Mess
        {
            public bool Alire { get; set; }
            public string Texte { get; set; }
            public string Id { get; set; }
            public DateTime RTime { get; set; }
            public Mess() { }
            public Mess(string msg, DateTime recTime, string fromId)
            {
                Texte = msg;
                Id = recTime.ToShortDateString() + "  " + recTime.ToShortTimeString() + "  FROM  " + fromId;
                Alire = true;
            }
        }
    //LE LOAD du winform
     private void FMESS_Load(object sender, EventArgs e)
            {
                Controls.Add(FunctionCible.FormBordure(this));
                //KeyPreview = true;
                lbxMess.DataSource = FAIS.messListe.Lmess;
                lbxMess.DisplayMember = "Id";
    //Le SelectedIndex
     private void lbxMess_SelectedIndexChanged(object sender, EventArgs e)
            {
                    Mess t = lbxMess.Items[this.lbxMess.SelectedIndex] as Mess;
                    textBox1.Visible = true;
                    textBox1.BringToFront();
                    textBox1.Text = t.Texte;
            }
    Si quelqu'un peu m'aider
    Bilzic

  2. #2
    Membre actif Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    mai 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : mai 2002
    Messages : 146
    Points : 270
    Points
    270

    Par défaut

    Dans le fichier FMESS.Designer.cs, supprime la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.lbxMess.SelectionIndexChanged += new System.EventHandler(this.LbxMess_SelectedIndexChanged)
    Et tu réinscris l’événement quand tu le souhaites (par exemple ligne 24 de ton extrait de code):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbxMess.SelectedIndexChanged += LbxMess_SelectedIndexChanged;
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations forums :
    Inscription : janvier 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut

    Bonjour Nouanda
    Ok pour ta solution: j'ai réinscrit le eventhandler dans le Load. le Pb est résolu
    Merci de ta réponse
    Bilzic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déclenchement automatique macro
    Par mjanbar dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 13/12/2007, 13h03
  2. Réponses: 3
    Dernier message: 20/09/2007, 09h35
  3. Déclenchement Automatique
    Par theyankee76 dans le forum APIs
    Réponses: 13
    Dernier message: 22/06/2007, 20h48
  4. Eviter la redimension automatique du navigateur
    Par Janitrix dans le forum Webdesign & Ergonomie
    Réponses: 6
    Dernier message: 04/05/2007, 00h14
  5. Réponses: 8
    Dernier message: 19/06/2006, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo