Babynini
Messages postés7Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention11 mars 2007
-
10 mars 2007 à 23:01
Babynini
Messages postés7Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention11 mars 2007
-
11 mars 2007 à 05:55
Bonjour,
bon voila, je fais un travail pour l'école. Je tente de faire un For each et ça ne fonctionne pas. Je veux que mon for each prennent tous les TextBox du formulaire et les efface. voici mon bout de code
Private Sub btnEffacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEffacer.Click
Dim i As New TextBox
For Each i In Me.Controls
EffacerContenu(i)
Next
End Sub
Private Sub EffacerContenu(ByVal contenu As Control)
contenu.Text = ""
End Sub
Il n'y a pas d'erreur détecté. Mais lorsque je démarre le déboguage et je pèse sur le bouton effacer l'erreur suivante apparaît:
Unable to cast object of type 'System.Windows.Forms.PictureBox' to type 'System.Windows.Forms.TextBox'.
Svp, repondez-moi. Je vous remercis de partager vos connaissances avec moi :P
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 mars 2007 à 23:09
Bonsoir
Oui ?
Dim i As New TextBox ne sert à rIen dès lors que tu écris ce que tu écris ensuite
La propriété text ne s'appliquant qu'aux textboxes, il ne faut pas t'étonner de ce que ta boucle, qui parcourt tous les contrôles, génère une erreur lorsque le contrôle sur lequel elle arrive n'est pas une textbox !
Suggestion : intéresse-toi à TypeOf (aide en ligne) et utilise-le pour ne traiter que tes textboxes
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 mars 2007 à 23:12
Vu ton code, tu n'es pas en VB6 comme la rubrique ou tu as posté le suggere mais bien en VB.Net
Quelques petites corrections à ton code :
Private Sub btnEffacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnEffacer.Click
Dim i As Control
For Each i In Me.Controls
EffacerContenu(i)
Next
End Sub
Private Sub EffacerContenu(ByVal contenu As Control)
If TypeOf contenu Is TextBox Then
contenu.Text = ""
End If
End Sub
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 mars 2007 à 23:15
Tu pourrais aussi faire ceci, plus propre même puisque moins d'appel de fonction.
Private Sub btnEffacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEffacer.Click
Dim i As Control
For Each i In Me.Controls
If TypeOf contenu Is TextBox Then EffacerContenu(i)
Next
End Sub
Private Sub EffacerContenu(ByVal contenu As Control)
contenu.Text = ""
End Sub
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 mars 2007 à 23:30
Ih ....
Alors essaye directement et dis-nous (il y a ubn truc, là ...)
Private Sub btnEffacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEffacer.Click
Dim i As Control
For Each i In Me.Controls
If TypeOf i Is TextBox Then
i.text = ""
Next
End Sub
Babynini
Messages postés7Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention11 mars 2007 10 mars 2007 à 23:52
Oui, j'utilise bel et bien le bon form...
Pour ce qui est des textbox, on dirait qu'il ne veut pas la faire pour les textbox, mais j'essais avec exemple, le maskedtextBox et sa fonctionne.... :O