IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    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
    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 chevronné
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    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;

  3. #3
    Membre habitué
    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
    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, 12h03
  2. Réponses: 3
    Dernier message: 20/09/2007, 08h35
  3. Déclenchement Automatique
    Par theyankee76 dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 22/06/2007, 19h48
  4. Eviter la redimension automatique du navigateur
    Par Janitrix dans le forum Webdesign & Ergonomie
    Réponses: 6
    Dernier message: 03/05/2007, 23h14
  5. Réponses: 8
    Dernier message: 19/06/2006, 16h31

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