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:
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