Control

Résolu
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 - 6 mars 2007 à 22:15
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 7 mars 2007 à 08:48
comment savoir sur quel control le curseur est t'il

je precise :

pas la cuseur de la souri mais du focus du control

ex:
3 textbox, je vaudrais savoir avec un for ou do loop sur quel control est le focus

10 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 mars 2007 à 22:30
Activecontrol.name à placer dans le gotfocus de chaque contrôle, si tu ne veux le faire que contrôle par contrôle

Mais si par contre tu veux que la "chose" tourne en permanence, il te faut un timer et :

code :

Private Sub Form_Load()
  Timer1.Interval = 300
End Sub


Private Sub Timer1_Timer()
  Static toto As String
  If toto <> ActiveControl.Name Then
    MsgBox ActiveControl.Name
    DoEvents
  End If
  toto = ActiveControl.Name
  DoEvents
End Sub
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 mars 2007 à 22:35
Salut,

tu peux faire une boucle sur tes objets TextBox et utiliser l'API GetFocus :

Option Explicit

Private Declare Function GetFocus Lib "user32" () As Long

Private Sub Form_Click()
    Dim ctl As TextBox
    Dim MyHwnd As Long
    
MyHwnd =  GetFocus
For Each ctl In Me.Controls
    If ctl.hWnd = MyHwnd Then MsgBox "Le control " & ctl.Name & " a le Focus": Exit For
Next ctl

End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
6 mars 2007 à 22:35
merci a toi ca marche d'enfer lol
0
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
6 mars 2007 à 22:51
mais j'ai encore une question

comment on fait pour lancer la function de l'object avec ActiveControl
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 mars 2007 à 22:58
Qu'entends-tu par "lancer la fonction de l'objet" ?

Je ne devine pas ce que tu cherches à dire ...  (un objet n'a pas de fonction)

Explique
0
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
6 mars 2007 à 23:00
enfait pour text1 il y a une fonction qui s'appelle Text1_Click

et comment on fait pour l'appeller avec avec activecontrol
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 mars 2007 à 23:09
salut,
"évènement" GotFocus LostFocus ... ?

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 mars 2007 à 23:10
Il ne s'agit pas d'une fonction mais d'un événement subi (le click)
Et par définition, si tu es dessus, tu y es parvenu soit par un setfocus, soit par le focus à lui donné par utilisation de ta touche tab, soit enfon en cliquant dessus.
Cliiquer maintenant sur une textbox sans ruen faire d'autre me parait surprenant, mais ma fois, si tu le veux, ce serait tout bêtement Text1_click pour déclencher ce que tu as mis dans text1_click.

Mais vraiment, je vois mal ce que tu cherches à faire, là.... Ce serait un peu comme appeler Pierre au téléphone pour lui demander quel est son numéro de téléphone !!!

J'ai l'impression que tu t'égares... je ne sais où ni comment...
Tu devrais expôser ton problème de A à Z car là ...
..
0
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
6 mars 2007 à 23:57
Private Sub MSComm1_OnComm()
Dim Code As String
Passed2 = Passed2 & MSComm1.Input

      If Mid(Passed2, Len(Passed2), 1) = Chr(13) Then
         Code = Left(Passed2, Len(Passed2) - 1) 'reception les données
         Passed2 = ""
      End If

Form1.ActiveControl.Text = Code 'affiche la recption dans le control active
Form1.Caption= Form1.ActiveControl.Name 'donne le nom de l'objet


End Sub

exemple :

Form1.ActiveControl.Name = Text1
et sa fonction est : Text1_Click

ou

Form1.ActiveControl.Name = Text2
et sa fonction est : Text2_Click

cela depend  ou se trouve le focus

je voudrais savoir comment on peut appellé la fonction de l'objet
text1_click ou text2_click ou autre

peut etre avec sendkey qui lui fera la touche enter
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 mars 2007 à 08:48
Vu !
Tu devrais tout simplement te servir d'un groupe de textboxes indéxées !
Text1(0) et Text1(1) au lieu de Text1 et Text2

et tu joues ensuite avec les index ...

Regarde ce truc que je viens de fabriquer et comprends comment il fonctionne :

Private toto As Integer


Private Sub Form_Load()
  toto = 9999
End Sub


Private Sub Text1_Click(Index As Integer)
   MsgBox "tu as cliqué sur Text1(" & Index & ")"
End Sub


Private Sub Timer1_Timer()
  If ActiveControl.Name <> "Text1" Then Exit Sub
  If toto <> ActiveControl.Index Or toto = 9999 Then
    MsgBox "tu es dans Text1(" & ActiveControl.Index & ")"
    DoEvents
    Text1_Click (ActiveControl.Index)
    DoEvents
  End If
  toto = ActiveControl.Index
  DoEvents
End Sub


 
0
Rejoignez-nous