Rechcerche sur la notion de "Groupe de Contrôles" en VB

Rechcerche sur la notion de "Groupe de Contrôles" en VB - VB/VBA/VBS - Programmation

Marsh Posté le 21-09-2002 à 16:52:17    

Salut à tous
 
J'ai créé 4 boutons dans un groupe de contrôles. Leurs index vont de 1 à 4. Ils portent les noms : ModifAct(1 jusqu'à 4). Lorsque je clique dessus, cela m'ouvre une fenêtre. Dans cette fenêtre j'ai besoin de connaître le n° d'index du bouton sur lequel j'ai cliqué. Ma fenêtre de départ s'appelle : ModifierFilm la fenêtre d'arrivée s'appelle ModifierActeur. J'ai essayé:
-Select case MadifierFilm!ModifAct.Item.Index, mais ça ne marche pas.
Quoi écrire pour pouvoir récupérer le n° d'index du bouton cliqué?
Merci d'avance

Reply

Marsh Posté le 21-09-2002 à 16:52:17   

Reply

Marsh Posté le 21-09-2002 à 17:41:36    

Dans l'évènement Click du bouton, l'index est transmis en paramètre ! Tu peux donc le lire sans problème :

Code :
  1. Private Sub Command1_Click(Index As Integer)
  2.    Select Case Index
  3.      Case 1:
  4.         //blabla
  5.         Break
  6.      Case 2:
  7.         //blabla
  8.         Break
  9.    End Select
  10. End Sub


Message édité par Harkonnen le 21-09-2002 à 17:44:20

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-09-2002 à 20:02:44    

OK mais le problème c'est que la procédure  
CommandButton1_Click(Index As Integer) se trouve dans la fenêtre "ModifierFilm" et permet d'ouvrir la fenêtre "ModifierActeur". Et c'est dans la fenêtre "ModifierActeur" que je souhaite lire la valeur de l'index.

Reply

Marsh Posté le 21-09-2002 à 20:08:43    

Ben dans ce cas tu transmets la valeur de l'index en paramètre de ModifierActeur() :  
 
Call ModifierActeur(index)
 
Et ta déclaration de ModifierActeur() :  
 
Private Sub ModifierActeur(index as Integer)
 
Je vois pas ou était la difficulté !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-09-2002 à 20:41:54    

Ce n'est pas très clair. Lorsque je fais:
Call ModifAct_Click(Index)  
dans la fenêtre "ModifierActeur" Il me met : "procédure sub ou fonction non définie".
Je répète la procédure est dans la fenêtre "ModifierFilm" et je veux récupérer la valeur de l'index dans la fenêtre "ModifierActeur".
Merci de ta patience.

Reply

Marsh Posté le 21-09-2002 à 20:53:41    

Poste le code de tes fonctions ModifierFilm et ModifierActeur


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-09-2002 à 21:14:08    

Ce ne sont pas des fonctions mais des fenêtres. Je poste le tout

Reply

Marsh Posté le 21-09-2002 à 21:19:38    

Fenêtre ModifierActeur.
 
Sub FormLoad()
Call ModifAct_Click(Index)
 
Select Case ModifierFilm!ModifAct(Index)
 
    Case 1
        PrenomAct.Text = ModifierFilm!PrenomAct(1).Text
        NomAct.Text = ModifierFilm!NomAct(1).Text
         
    Case 2
        PrenomAct.Text = ModifierFilm!PrenomAct(2).Text
        NomAct.Text = ModifierFilm!NomAct(2).Text
         
    Case 3
        PrenomAct.Text = ModifierFilm!PrenomAct(3).Text
        NomAct.Text = ModifierFilm!NomAct(3).Text
         
    Case 4
        PrenomAct.Text = ModifierFilm!PrenomAct(4).Text
        NomAct.Text = ModifierFilm!NomAct(4).Text
         
End Select
End Sub
________________________________________________________________
Fenêtre ModifierFilm:
 
Public Sub ModifAct_Click(Index As Integer)
ModifierFilm.Enabled = False
ModifierActeur.Show
End Sub
________________________________________________________________
Bien sûr ce n'est qu'une partie.
Dans la fenêtre "ModifierFilm" se trouve la procédure ModifAct_Click(Index). Cette procédure ouvre la fenêtre ModifierActeur. Index correspond au n° d'index du bouton. Il existe 4 boutons sur la même page d'index 1 à 4. Lorsque l'on clique sur l'un de ces boutons cela active cette procédure.
 
C'est ensuite dans le form Load de la fenêtre ModifierActeur que je souhaite récupérer le N° d'index du bouton sur lequel l'utilisateur a cliqué pour reconnaître le bon bouton et savoir quoi afficher.
 
Bon courage!!! Et merci

Reply

Marsh Posté le 21-09-2002 à 21:31:40    

Bon, déja, ce genre de truc est à éviter :
 

Code :
  1. Call ModifAct_Click(Index)


 
On appelle jamais soi même une procédure évenementielle, on laisse le soin à l'utilisateur de cliquer sur le bouton, ce qui déclenchera l'éxécution de cette procédure.
 
Ensuite, pourquoi mettre la fonction ModifAct_Click(Index) dans un fichier de nouvelle Form ?  :??:
 
Enfin, si tu veux récupérer l'index, passe le en variable globale, comme ceci :
 
Au début de ton programme :

Code :
  1. Dim idx As Integer


 
Dans la fonction ModifAct_Click() :

Code :
  1. idx = Index


 
Et dans la fonction ModifierActeur :  

Code :
  1. Select Case idx
  2. ...


 
Et ça devrait être bon. Mais ton programme me semble vraiment bizarre... Tu devrais revoir un peu sa conception !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-09-2002 à 23:35:34    

Bon OK je me suis pris la tête sur un truc méga simple!!! Effectivement ce que tu me dis marche!
Encore merci pour tous les services rendus!!
Bye


Message édité par mathos le 21-09-2002 à 23:44:13
Reply

Marsh Posté le 21-09-2002 à 23:35:34   

Reply

Marsh Posté le 22-09-2002 à 00:17:26    

Mais de rien :jap:
 
(Et de 2 ! Je suis en forme ce soir  :sol: )


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed