10
votes

C # Ajouter une case à cocher au menu contextuel Winforms

J'ai une série de cases sur un formulaire. Je veux pouvoir les sélectionner dans un menu contextuel ainsi que le formulaire lui-même. Le menu contextuel est lié à l'icône du plateau système de l'application.

Ma question est que est-il possible de lier le menu contextuel à ces cases à cocher? Ou même possible d'ajouter des cases à cocher dans le menu contextuel? Ou même une combinaison ?!


0 commentaires

4 Réponses :


20
votes

Les éléments de menu ont une propriété cochée ( menuitem.checké , ToolstripMenuitem.Checked ) que vous pouvez utiliser à cette fin.

Concernant la possibilité de relier les éléments de menu contextuels aux cases à cocher, si vous utilisez un contextmengrip et définissez checkonclick propriété sur true , Vous pouvez connecter les événements checkedchanged sur le même gestionnaire d'événements pour la coche et Cochez la case Contrôles qui doivent être "liés", et à l'intérieur de cet événement Handler Veillez à synchroniser la propriété cochée des commandes et effectuez toutes les autres actions nécessaires.


0 commentaires

1
votes

Eh bien, un élément de menu a la propriété "cochée", qui peut le faire se comporter comme une case à cocher. Lorsque vous cliquez sur un élément de menu, vous pouvez basculer par programme l'état de la case correspondante de votre formulaire.

Vous pouvez également utiliser l'événement d'ouverture du menu contextuel pour définir l'état vérifié des éléments de menu en fonction de l'état vérifié des cases.


0 commentaires

1
votes

Vous pouvez héberger des commandes standard et personnalisées en les enveloppant dans un outilstripcontrolhost

http://msdn.microsoft.com /en-us/library/system.windows.forms.toolstripcontrolhost.aspx


0 commentaires

1
votes
  //Create the combo box object and set its properties
  cmbFunctionArea               = new ComboBox();
  cmbFunctionArea.Cursor        = System.Windows.Forms.Cursors.Arrow;
  cmbFunctionArea.DropDownStyle=System.Windows.Forms.ComboBoxStyle.DropDownList;
  cmbFunctionArea.Dock          = DockStyle.Fill;
  //Event that will be fired when selected index in the combo box is changed
  cmbFunctionArea.SelectionChangeCommitted += new   EventHandlercmbFunctionArea_SelectedIndexChanged);

0 commentaires