Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 293 fois - Téléchargée 38 fois
' tout en code ! Option Explicit Dim x As Byte Dim nom_obj(6) As Object Dim nom_obj_txt ' Private Sub Form_Activate() Me.KeyPreview = True nom_obj_txt = Array("z0", "z1", "z2", "z3", "z4", "z5") ' nom des objets textbox 'virtuels' For x = 0 To 5 Set nom_obj(x) = Me.Controls.Add("VB.textbox", "z" & x, Me) ' creation de 5 zones de texte "z0", "z1", "z2","z3","z4","z5" With nom_obj(x) ' définition des propriétés If x > 2 Then .Text = "Ajout routine zone texte n°" & x Else .Text = "Ajout routine zone texte n°" & x & " - Supression appui touches alphabétiques" End If .MaxLength = 255 .Tag = nom_obj(x).Name .Top = (1000 * x) + 500 .Left = 1000 .Visible = True .Width = 5000 .Enabled = True .Locked = False ' etc........ End With Next x End Sub Private Sub Form_KeyPress(KeyAscii As Integer) ' teste les evenements Keypress sur les champs z0,z1,z2 ' pour info créer un évenement Private Sub z0_keypress(KeyAscii As Integer) ne fonctionne pas.. pour VB, le champ z0 n'existe pas ' et on ne peut pas ecrire Private Sub controls("z0")_Keypress(KeyAscii As Integer) For x = 0 To 2 ' supression appui touches alpha sur champs "z0","z1","z2" If Me.ActiveControl.Tag = nom_obj_txt(x) Then KeyAscii = suppr_lettre(KeyAscii) Next x End Sub Public Function suppr_lettre(Key) As Integer ' suppression des lettres If (Key < Asc(0) Or Key > Asc(9)) And Key <> 8 Then suppr_lettre = 0 Else suppr_lettre = Key End If End Function
17 janv. 2004 à 12:20
Dim WithEvents ctlDynamic As VBControlExtender
Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)
' test for the click event of the TreeView
If Info.Name = "Click" Then
MsgBox "You clicked " & ctlDynamic.Name
End If
End Sub
Private Sub Form_Load()
Set ctlDynamic = Controls.Add("VB.TextBox", _
"myctl", Form1)
ctlDynamic.move 0, 45, 1500, 300
ctlDynamic.Visible = True
End Sub
Sur ce , avant de poster une source, ou prendre un temps fou à coder comme un boeu, t'as le forum, prends le temps de sonder, demandes aux gens, vas sur google, bréf essayes de te documenter...
Ce code est justement fait pour VB6 au passage, donc creanaud76 avais raison.
Bonne prog à vous tous ;), akh
21 nov. 2003 à 18:01
VB (version 6 en tout cas) ne gère absolument pas les évenements des objet crées dynamiquement.
par exemple:
Si tu créés dynamiquement une zone de texte "txtInput" via :
Set txtInput=me.Controls.Add("VB.TextBox","txtInput",me)
faut même pas espérer que l'évenement Keypress du textbox....
Private Sub txtInput_KeyPress(KeyAscii As Integer)
End sub
....soit pris en compte
12 sept. 2003 à 00:30
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.