2010-10-09 6 views
0

Lorsque je rends contextmenustrip, il est rendu en haut à gauche de l'écran de mon PC. J'ai un listview, qui contient 5-6 éléments et sur le clic droit de chaque élément, la bande de menu de contexte est affichée. J'ai aussi besoin de changer la couleur de la bande de menu contextuel, y compris les arrière-plans et le texte.ContextMenuStrip rend en haut à gauche Windows

Merci d'avance!

Répondre

1

De loin le plus simple est de simplement définir la propriété ListView.ContextMenuStrip à votre CMS, tout est alors automatique. Vous pouvez le faire dans le concepteur.

Si vous avez besoin d'un gestionnaire personnalisé pour une raison quelconque, pour vérifier si l'élément droit a été cliqué par exemple, vous pouvez appeler la propriété méthode Show() avec le code comme ceci:

private void listView1_MouseClick(object sender, MouseEventArgs e) { 
     if (allowContextMenu(listView1.SelectedItems) { 
      contextMenuStrip1.Show(listView1, e.Location); 
     } 
    } 
0

Vous n'avez pas montré de code, mais si vous n'appelez pas la surcharge Show qui prend un contrôle en paramètre, le new Point(0, 0) que votre passage évident mettra le menu en haut à gauche de l'écran.

+0

Merci pour la réponse. Oui c'est ce qui arrive. Je viens d'écrire ContextMenu1.Show(). Que dois-je écrire pour m'assurer qu'il est affiché en dessous de chaque listview des éléments sélectionnés? –

+0

Regardez certaines des surcharges de Show. L'un d'eux prend un contrôle et un point. Passez votre ListView en tant que contrôle et les coordonnées (x, y) de l'élément que vous souhaitez afficher. Vous pouvez demander ces coordonnées à ListView pour tout élément affiché. –

Questions connexes