IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Utilisations du menu toolstrip [Débutant]


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 36
    Points : 25
    Points
    25
    Par défaut Utilisations du menu toolstrip
    Bonjour,
    je suis actuellement en train de finaliser le développement de mon navigateur mais je me trouve confronté a un problème : je ne sais pas codé le menu toolstrip. mon but est triple , je voudrais un sous menu a l'item "historique" qui quand il devient trop grand ce voit affubler d'une barre de scroll et pour finir je veux que quand on clique sur un item de ce sous-menu on accède a l'url indiqué dans le text de l'item.
    je pense pouvoir faire cette dernière chose de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string urlaAcceder;
    urlaAcceder = NomItem.Text;
    Navigateur.Source = new uri(urlaAcceder);
    seul bémol c'est que je ne sait pas comment déterminer le nom de l'item de manière dynamique

    j'ai fait pas mal de recherche sur internet mais je n'ai pas vraiment compris dans le peu que j'ai trouvé
    vous trouverez en annexe un screen shot légendé de ce que j'aimerais pour mon navigateur.

    Cordialement
    kormedhar

    Nom : QSDqsdQSDqsd.png
Affichages : 293
Taille : 24,9 Ko

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 36
    Points : 25
    Points
    25
    Par défaut la solution
    J'ai continué mes recherches et j'ai maintenant ce code qui me permet bien d'ajouter des items au sous menu de historique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
            string ancienneadresse = ""; //sert dans la fonction suivante a éviter les doublons 
            private void GestionHistorique (object sender, EventArgs e)
            {
                int i = 0;
                string adresseactuelle = Navigateur.Source.ToString();//change a chaque appelle de la fonction contrairement a ancienneadresse
                if (ancienneadresse != adresseactuelle)
                {
                    ToolStripItem item = new ToolStripMenuItem();
                    //Name that will apear on the menu
                    item.Text = Navigateur.Source.ToString();
                    //Put in the Name property whatever neccessery to retrive your data on click event
                    item.Name = ("HistoriqueUrl" + i);
                    //On-Click event
                    item.Click += new EventHandler(item_Click);
                    //Add the submenu to the parent menu
                    Historique.DropDownItems.Add(item);
                    ancienneadresse = adresseactuelle;
                }
            }
            void item_Click(object sender, EventArgs e)
            {
                //throw new NotImplementedException();
                string urlaAcceder = this.Historique.DropDownItems.ToString();
                Navigateur.Source = new Uri (urlaAcceder);
            }
    comme vous le voyez je passe l'url comme propriété "Text" de l'item mais je n'arrive pas a récupérer cette propriété dans l’événement item_Click comment faire ?

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    ToolStripItem item = sender as ToolStripItem;
    itf(item != null)
    {
       string theUrl = item.Text;
    }

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    merci theMonz31 j'ai trouvé une autre solution qui marche plutôt bien :

    dans l'événement "Awesomium_Windows_Forms_WebControl_DocumentReady" il faut appeler la méthode qui va gérer l'historique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GestionHistorique(sender, e);
    la méthode de gestion de l'historique utilise une variable qui n'appartient à aucune méthode puis j'utilise une variable contenant la dernière url chargé puis une fonction ce charge d'ajouter ou non un item a la liste (ajout si url différent de la dernière url puis elle lui donne comme attribut Text l'url et comme Attribut Name une valeur unique. Pour finir elle créé un événement appelé si on clique sur un item de la liste dans cette fonction on affecte l'attribut Text de l'item cliqué en tant qu'url de la page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
            string ancienneadresse = ""; //sert dans la fonction suivante a éviter les doublons 
            private void GestionHistorique (object sender, EventArgs e)
            {
                int i = 0;
                string adresseactuelle = Navigateur.Source.ToString();//change a chaque appelle de la fonction contrairement a ancienneadresse
                if (ancienneadresse != adresseactuelle)
                {
                    ToolStripItem item = new ToolStripMenuItem();
                    //Name that will apear on the menu
                    item.Text = Navigateur.Source.ToString();
                    //Put in the Name property whatever neccessery to retrive your data on click event
                    item.Name = ("HistoriqueUrl" + i);
                    //On-Click event
                    item.Click += new EventHandler(item_Click);
                    //Add the submenu to the parent menu
                    Historique.DropDownItems.Add(item);
                    ancienneadresse = adresseactuelle;
                }
            }
            void item_Click(object sender, EventArgs e)
            {
                Navigateur.Source = new Uri(sender.ToString());
            }
    je n'arrive pas par contre a indiquer une hauteur maximale au sous-menu est-ce possible a votre connaissance je n'ai absolument rien trouvé sur le msdn et pour l'instant c'est au moment d'arriver au bord de l'écran que les flèche de scroll apparaisse

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    bah si, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toolStripMenuItem2.DropDown.MaximumSize = new System.Drawing.Size(100, 100);
    où DropDown permet de définir les propriétés du DropDown utilisé par un toolStripItem (pour les sous items... )

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 36
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup ! je cherchais dans l'attribut Size c'est pour ça que je ne trouvais pas

    voici donc le code finale pour gérer l'historique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
            string ancienneadresse = ""; //sert dans la fonction suivante a éviter les doublons 
            private void GestionHistorique (object sender, EventArgs e)
            {
                int i = 0;
                string adresseactuelle = Navigateur.Source.ToString();//change a chaque appelle de la fonction contrairement a ancienneadresse
                if (ancienneadresse != adresseactuelle)
                {
                    ToolStripItem item = new ToolStripMenuItem();
                    //Name that will apear on the menu
                    item.Text = Navigateur.Source.ToString();
                    //Put in the Name property whatever neccessery to retrive your data on click event
                    item.Name = ("HistoriqueUrl" + i);
                    //On-Click event
                    item.Click += new EventHandler(item_Click);
                    //Add the submenu to the parent menu
                    Historique.DropDownItems.Add(item);
                    ancienneadresse = adresseactuelle;
                    this.Historique.DropDown.MaximumSize = new System.Drawing.Size(1000, 600);
                }
            }
            void item_Click(object sender, EventArgs e)
            {
                Navigateur.Source = new Uri(sender.ToString());
            }
    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. delphi7 (utilisation du menu quickrep)
    Par benrabah dans le forum Delphi
    Réponses: 3
    Dernier message: 29/06/2007, 16h53
  2. Comment utiliser le Menu avec le SiteMapPath ?
    Par tetaslap dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/06/2007, 18h17
  3. utiliser le menu contextuel de IE (Export to excell)
    Par cortex024 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/05/2007, 16h46
  4. utilisation de menu et menuItem
    Par alphonse62 dans le forum NetBeans
    Réponses: 2
    Dernier message: 06/05/2007, 19h38
  5. utiliser un menu unique pour plusieurs pages...
    Par brouette dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 17/12/2006, 01h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo