olivierbalagizi
Messages postés40Date d'inscriptionsamedi 19 mars 2005StatutMembreDernière intervention10 février 2011
-
24 janv. 2006 à 09:53
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 2008
-
24 janv. 2006 à 10:54
Bonjour,
Je viens de rencontrer un petit problème. Dans l'évenement KeyPress d'un listbox (Sur un Mdi Form), je met le code tel que si l'utilisateur appuie sur la touche clavier "Enter" il s'affiche un autre formulaire fille correspondant à l'index de l'élément séléctionné.
if(e.KeyChar == (char)13)
{
intMonIndex = lst.SelectedIndex
AfficherFormulaire(lst.SelectedIndex);
}
Dans une variable public de type integer j'ai sauvegardé l'index courant. Je vais alors qu'en fermant le formulaire fille qui vient de s'afficher, le controle listBox lst reprenne le focus à l'index où il était de telle sorte que si l'utilisateur appuye sur "Enter" encore une fois, la même feuille fille réaparaisse.
private void frmMDI_MdiChildActivate(object sender, System.EventArgs e)
{
if(this.ActiveMdiChild == null)
{
lst.Focus();
lstMenuGen.SelectedIndex = intMonIndex ;
}
}
Le problème alors, c'est que quand j'appuie sur "Enter" pour la 2eme fois, c'est comme si l'index n'est pas sélectionné et le formulaire correspondant ne s'affiche pas. Il faut alors que j'appuie sur une des touches de direction (Vers le bas, par exemple) pour sélectionner l'index puis sur "Enter" pour ouvrir le formulaire. Que faire? Merci d'avance pour votre réponse
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 24 janv. 2006 à 10:54
Salut,
La listBox dont tu parles, est-elle elle aussi dans une form fille ?
Ou directement dans le Form conteneur MDI ?
Dans le premier cas, je n'ai pas reussi a reproduire ton probleme.
Dans le second cas, il faut avoir en tete qu'une Form MDI n'est pas vraiment faite pour accueillir des Controls (la preuve, ca genere un bug d'affichage quand une fenetre se superpose a un Control). Ton probleme vient peut-etre de la.