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.
Si quelqu'un peu m'aider
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; }
Bilzic
Partager