Keypres et collection de TextBox

Résolu
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008 - 7 juil. 2007 à 11:14
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008 - 12 juil. 2007 à 11:36
Bonjour,

Je me lance en VB.NET je ne suis pas un pro, pas d'ordi au boulot, je n'ai plus programmé depuis 1 année et c'était en VB6, donc soyez indulgent

J'ai créé une collection de TextBox

<!-- BEGIN TEMPLATE: bbcode_quote -->

Citation:
Private cCoups As New Collection
With cCoups
.Add(txtCp1)
.Add(txtCp2)
.Add(txtCp3)
........
.Add(txtCp60)
end with

<!-- END TEMPLATE: bbcode_quote -->J'aimerai en utilisant l'index de la collection gérer la saisie avec keyPress ou TextChanged

Merci d'avance
FikoU

<!-- / message -->

21 réponses

Utilisateur anonyme
11 juil. 2007 à 14:00
Ha, en effet, je fait erreur.
Remplace le Dim cCoups AsNew ControlCollection(Me) par
Dim cCoups As New System.Collections.Generic.List(Of System.Windows.Forms.Control)()

Pour la doc non, la msdn est la mieux.







__________
Kenji

(


Nouveau forum VBA/Office
3
Utilisateur anonyme
12 juil. 2007 à 11:30
C'est
Private Sub txtcp_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs)



End Sub





__________
Kenji

(


Nouveau forum VBA/Office
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 juil. 2007 à 11:18
Oui et alors, ou est le problème ??????? Y en a t-il un d'ailleurs ????

Bon j'anticipe un peu. Renseigne-toi sur la méthode AddHandler
 

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Utilisateur anonyme
7 juil. 2007 à 11:22
Salut,

Déjà, utilise plutot une ControlCollection au lieu d'une collection.
Ensuite, comme dit casy AddHandler :



For Each TxtCp As System.Windows.Forms.Control In cCoups
  AddHandler TxtCp.TextChanged, AddressOf txtCp_TextChanged
  AddHandler TxtCp.KeyPress, AddressOf txtCp_KeyPress
Next ,

----

(Nouveau forum VBA/Office
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
7 juil. 2007 à 11:29
Salut,
En fait j'aimerai faire comme ci dessous mais sans avoir besoin de faire un KeyPress pour chaque TextBox (60 TextBox), donc utiliser l'index

Private

Sub txtCp1_KeyPress(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles txtCp1.KeyPress

End
Sub

J'ai un nom différent pour chaque TextBox contrairement à VB6 ou j'avais un nom de TextBox avec index.
Peut que je doit modifier ma collection ??

FiloU
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
7 juil. 2007 à 11:53
Salut Charles,
Merci pour ta réponse.
Mon 2ème post c'est croisé avec le tient.
FiloU
0
Utilisateur anonyme
7 juil. 2007 à 12:36
Si ca te va, n'oublis pas de valider la réponse.







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
7 juil. 2007 à 13:39
Je n'ai pas eu le temps de tester et je pars maintenant pour une semaine.
Je testerai pendant cette semaine, mais pas d'internet
Je met réponse OK et vous dit "comment" quand je rentre
Merci à tous
FiloU
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
10 juil. 2007 à 17:58
Bonjours,
Je suis de retour et je patauge. Désolé de faire remonter ce post.
J'ai écrit ca :

Dim

cCoups
As Control

For

Each txtcp
As System.Windows.Forms.Control
In cCoups

J'ai le message d'erreur suivant :
Lexpression est du type "System.Windows.Forms.Control" qui n'est pas un type collection.

Merci et @+

FiloU
0
Utilisateur anonyme
10 juil. 2007 à 18:21
Normal, tu peux pas ennumerer les objets d'un obejet qui n'est pas une collection
Je pense que tu voulais faire Dim cCoups As ControlCollection







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
11 juil. 2007 à 06:29
Bonjour,
Cela ne marche toujours pas !

Imports

System.Windows.Forms.form
Public

Class frmSaisie25m

   Dim cCoups AsNew ControlCollection

      Private

Sub frmSaisie25m_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
         For

Each txtcp
As System.Windows.Forms.Control
In cCoups
            
AddHandler txtcp.KeyPress,
AddressOf txtCp_KeyPress
         
Next
      End
Sub
EndClass

Dans la ligne 3 Dim..... j'ai une erreur sur le cCoups "Argument non spécifié pour le paramètre 'Owner'  de Public Sub (Owner As System.Windows.forms.Form)"

Merci pour votre patience
FiloU
0
Utilisateur anonyme
11 juil. 2007 à 11:18
Il faut renseigner la form propriétaire de la collection. Ici frmSaisie25m (Me)
Dim cCoups AsNew ControlCollection(Me)







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
11 juil. 2007 à 11:43
Salut Charles et merci,

Mais là je désespère.
Si je repend ton code :
AddHandler TxtCp.KeyPress, AddressOf txtCp_KeyPress

Cela plante dans le addressOf.

Il n'existe aucune doc complète sur les collections 5 jours que je cherche ?
je trouve l'aide de VB.NET  pas claire pour une débutant comme moi.
Je me demande si je vais pas retourner à VB6 !!!

FiloU
0
Utilisateur anonyme
11 juil. 2007 à 12:01
As tu créer les 2 fontions de destination ?

Private Sub txtCp_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
Private Sub txtCp_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

End Sub 

Sinon, quel est l'erreur qu'il te met ?







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
11 juil. 2007 à 13:02
Re,
Voici tout mon code

Public

Class frmSaisie25m

   
Dim cCoups
As
New ControlCollection(
Me)
      Private

Sub frmSaisie25m_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
         For

Each txtcp
As System.Windows.Forms.Control
In cCoups
            
AddHandler txtcp.TextChanged,
AddressOf txtCp_TextChanged
            
AddHandler txtcp.KeyPress,
AddressOf txtcp_keypress
         
Next
      End
Sub

      PrivateSub txtcp_keypress(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyPressEventArgs)
         MsgBox(
"essai KeyPress")
      
End
Sub

      Private
Sub txtCp_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
         MsgBox("essai TextChange"
)

      End
Sub

EndClass

Je n'ai plus d'erreur mais les 2 MsgBox ne s'affiches pas Si je met un point d'arret dans les 2 fonction le prg ne s'arrete pas donc on n'entre pas dans ces fonctions ???

Pour la doc tu as une idée je vais dans une librairie info cet après midi

@+FiloU
0
Utilisateur anonyme
11 juil. 2007 à 13:21
Faudrais aussi penser à les ajouter a la collection
A mettre avant le foreach

With cCoups
.Add(txtCp1)
.Add(txtCp2)
.Add(txtCp3)
........
.Add(txtCp60)
end with







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
11 juil. 2007 à 13:35
J'ai ajouter les TexBox à la collection toujours pas de MsgBox.
Pour la doc pas d'idée ??
FiloU
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
11 juil. 2007 à 18:03
Super ca marche Merci Charles

VB.NET comparer à VB6 est à mon avis un nouveau langage.

Ch' tite dernière question dans l'intellisence il y a de petites icones (losange mauve ect), je ne trouve pas leur significations.

J'ai énormement de peine avec l'aide VB.Net

Encore merci
FiloU
0
Utilisateur anonyme
11 juil. 2007 à 19:24
Salut,

En voila quelqu'uns :

   Propriétés
   Fonctions
    Evénements
   Classe
   Structure
   Interface
   Délégué
   Enumeration







__________
Kenji

(


Nouveau forum VBA/Office
0
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
12 juil. 2007 à 07:52
Bonjour,
C'est encore moi

Je fait quoi de faux pour le LostFocus

For

Each txtCp
As System.Windows.Forms.Control
In cCoups
   '
AddHandler txtcp.TextChanged, AddressOf txtCp_TextChanged
   AddHandler txtCp.KeyPress,
AddressOf txtcp_keypress

   AddHandlertxtCp.LostFocus,AddressOftxtCp_lostfocus
Next

Private

Sub txtcp_LostFocus(ByVal sender AsObject, ByVal e As System.Windows.Forms.LostfocusEventArgs)

End
Sub
OU
PrivateSub txtcp_LostFocus(ByVal sender AsObject, ByVal e As System.Windows.Forms.EventArgs)

End
Sub

J'ai trouvé une doc mais je n'en suis pas encore là. Je doit avouer que je n'ai pas tous compris.
Par contre ma procédure de controle de saisie avec le KeyPress marche nickel.

FiloU
0
Rejoignez-nous