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 :

Menu contextuel baladeur à fixer


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Débutant
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Débutant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 87
    Points
    87
    Par défaut Menu contextuel baladeur à fixer
    Bonjour à tous,

    J'ai un menu contextuel qui s'affiche sur une NotifyIcon qui contient uniquement un textbox lors de son ouverture. Ce textbox me permet d'entrer du text pour recherche dans une List<T>.

    Lors de la recherche des item sont ajouter au dessus du textbox. Plus la recherche avance + le nombre d'item diminue. Ce qui fait que le context menu remonte sur l'écran.

    Voici le code utilisé:

    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
    26
    27
    28
    29
     
    		private void mnuRecherche_TextChanged(object sender, EventArgs e)
    		{
    			CleanMenu();
     
    			if (mnuRecherche.Text == "") return;
     
    			if(mnuRecherche.TextLength < 3) return; //TODO: voir option
     
    			List<Personne> lst = App.AppIconed.Repertoire.Search(mnuRecherche.Text);
     
    			ToolStripMenuItem mnua = new ToolStripMenuItem();
     
    			mnu.SuspendLayout();
     
    			for (int i = 0; i < lst.Count; i++) //TODO: maximiser le nombre à rechercher et possible de passer outre
    			{
    				mnua = new ToolStripMenuItem();
     
    				mnua.Text = lst[i].TelProf;//TODO: afficher privé ou prof suivant options
    				mnua.Tag = lst[i];
    				mnua.Click += tm_Click;
     
    				mnu.Items.Insert(i, mnua);
    			}
     
    			mnu.ResumeLayout();
     
    		}
    J'ai cherché pour trouver la location du contextmenu mais rien trouvé.

    Comment puis-je faire pour conserver le menu "accroché" à min notifyIcon??

  2. #2
    Membre régulier
    Profil pro
    Débutant
    Inscrit en
    Février 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Débutant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2007
    Messages : 127
    Points : 87
    Points
    87
    Par défaut
    Bon je me répond à moi même si quelqu'un a un jour besoins de cette solution.

    il faut utiliser le Bound du menu pour calculer et replacer le menucontextuel

    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
     
     
    private Rectangle lastBounds;
     
    private void mnu_Opened(object sender, EventArgs e)
    		{
    			lastBounds = mnu.Bounds;
    		}
     
     
    		private void mnu_SizeChanged(object sender, EventArgs e) //TODO: Semble fonctionner mais descend légèrement le menu.
    		{
    			Rectangle rc = mnu.Bounds;
    			int diff = lastBounds.Height - rc.Height;
     
    			if (diff > 0)
    				mnu.Bounds = new Rectangle(new Point(rc.X, rc.Y + diff), rc.Size);
    			else
    				mnu.Bounds = new Rectangle(new Point(rc.X, rc.Y - diff), rc.Size);
     
    			lastBounds = mnu.Bounds;
     
    		}

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/01/2016, 13h35
  2. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  3. [Plugin] Ajouter une option au menu contextuel ?
    Par relivio dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 22/03/2004, 16h18
  4. [VB6] menu contextuel dynamique
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/07/2003, 11h53
  5. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

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