Menu d'icônes avec un listview + imagelist

argatan Messages postés 11 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 13 avril 2014 - 7 août 2013 à 08:34
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 8 août 2013 à 13:54
bonjour , sa fait déjà quelques jours que j'ai fait un menu à droite (Visual Basic 2010) avec 4 icônes. Cependant s'il est vrai que mes icônes sont cliquables , le fait de cliquer dessus appel juste le formulaire du bouton sur lequel on a cliqué les 3 autres boutons font de même (j'ai lu sur un forum qu'il fallait écrire une procédure qui permet de savoir sur quel bouton l'utilisateur à cliqué et ainsi
d'appeler la procédure correspondant au choix de l'utilisateur (dans mon cas le formulaire que j'ai mentionné plus haut) ).
Ceci dit je ne réussi pas à écrire cette procédure svp help

5 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 août 2013 à 09:44
Salut

j'ai fait un menu à droite ?????
explique toi clairement
0
argatan Messages postés 11 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 13 avril 2014
7 août 2013 à 14:30
1 - Tout d'abord j'ai fait mon projet en 3couches (architecture MVC), la couche Bussiness, Data, et Présentation dans visual studio 2010

1.1 - BIBLIOTHEQUE : BL_LIBRARY (BUSSINNESS LIBRARY)
où les fonctions définies dans la couche Data sont instanciées afin de permettre leur utilisation dans la couche présentation)

1.2 - BIBLIOTHEQUE : DL_LIBRARY (DATA LIBRARY)
où se trouve toutes les procédures de requêtes sql pour le traitement des données (add,update,delete,select) dans la BD

1.3 - BIBLIOTHEQUE : PL_LIBRARY (PRESENTATION LIBRARY)
où se trouve le module de connexion à la BD, tous les formulaires, la BD,ainsi que les ressources (essentiellement des images pour les boutons (icônes) que j'ai crée)

2 - lors du démarrage de l'appli dans visual studio 2010 une fenêtre de connexion (login,password) invite l'utilisateur à s'authentifier. Après cela le formulaire principal s'affiche

2.1 - au bon milieu (de la gauche j'usqu'au tout milieu) on a un datagrid sur lequel vont s'afficher chacun des enregistrement de la BD

2.2 - au-dessus du datagrid se trouve des contrôles graphique (1textbox, 1combobox,2boutons (petits),2labels) permettant d'afficher les enregistrement de la BD en fonction d'un certain nombres de critères.

2.3 - à droite du datagrid se trouve le (fameux) menu :
dans ce menu fait à partir d'un LISTVIEW+IMAGELIST on a 4icônes (ou alors 4boutons)

2.3.1 - BOUTON (ICONE) : AJOUTER
qui devrait appeler le formulaire (FrmContact) en sachant qu'ici tous les champs du formulaire sont vides.

2.3.2 - BOUTON (ICONE) : MODIFIER
qui devrait appeler le formulaire (FrmModif) en sachant qu'ici le champ matricule est vérrouillé

2.3.3 - BOUTON (ICONE) : SUPRIMER
qui devrait appeler le formulaire FrmSuppr en sachant qu'ici tous les champs du formulaire sont vérouillés

2.3.4 - BOUTON (ICONE) : IMPRIMER
qui devrait appeler un forulaire pour l'impression des données (je n'ai pas encore développé ce formulaire)

3 - DIFFICULTE RENCONTREE
lorsuqe je double (dans le formulaire principal) sur l'icône (bouton : AJOUTER,ou MODIFIER, ou SUPPRIMER, ou IMPRIMER) la procédure ci-dessous est crée :

Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged

<<Ma Procédure>>

End Sub

par la suite j'ai ajouté la procédure ci-dessous à l'endroit marqué : <<Ma Procédure>>

Select Case ListView1.SelectedItems(0).Text
Case "Ajouter"
FrmContact.Show()
End Select
Select Case ListView1.SelectedItems(0).Text
Case "Modifier"
frmLogin.Show()
End Select

je me heurte à un problème : dans un premier temps le 1er bouton (icône) sur lequel je clique ouvre bien l'un des formulaire( FrmContact, ou frmLogin).

Seulement si je ferme le formulaire ouvert et que je clique sur un autre bouton (icône) je reçois une erreur de la part de visual studio 2010 :

L'exception ArgumentOutOfRangeException n'a pas été gérée
InvalidArgument=La valeur '0' n'est pas valide pour 'index'.
Nom du paramètre : index

et là je suis obligé d'arrêter l'exécution de l'application. Merci de m'avoir suivi. j'espère avoir été plu explicite.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 août 2013 à 20:51
Salut

bien expliqué
j'ai fait mon projet en 3couches
ce ne risque pas de rouiler en tous cas LOL


aussi un Select Case ListView1.SelectedItems(0).Text suffit
essaie ainsi
 Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        If ListView1.SelectedItems.Count = 0 Then
            Exit Sub
        End If
        Select Case ListView1.SelectedItems(0).Text
           Case "Ajouter" 
                FrmContact.Show()  
          Case "Modifier" 
                 frmLogin.Show() 
        End Select
    End Sub


bonne prog
0
argatan Messages postés 11 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 13 avril 2014
8 août 2013 à 13:24
Ok grand merci je viens d'appliquer ta procédure dans mon code tout marche nickel (vraiment grand merci).
Ceci dit je tien à ajouter un truc : lorsque les formulaires (qui apparaissent lorsqu'on clique sur les boutons (ICONES) s'affichent ils se mettent automatiquement derrière le formulaire principal
(je suis obligé de tabuler pour ramener le formulaire appelé (qui se trouve en arrière plan par rapport au formulaire principal)
Tu n'aurais pas une astuce (idée) pour que je mes formulaires puissent se positionner en en 1er plan par rapport au formulaire principal ?
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
8 août 2013 à 13:54
Salut

ok merci
selon les règles du forum
pour une nouvelle question qui n'a pas de rapport il serait préferrable la poser dans un nouveau post
et mettre celui ci comme résolu
0
Rejoignez-nous