Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de ContextMenu

4 réponses
Avatar
Millox Frédéric
Bonjour,

J'ai un problème qui me paraît insoluble... :-(

J'utilise un ocx qui me permet de manipuler les images. Cet ocx ne contient
pas d'attribut ContextMenu pour lui attribuer un ContextMenu défini. J'ai
donc utilisé la manip classique qui consiste à tester le click droit lors de
l'événement MouseDown de l'ocx et à afficher le ContextMenu par :

MyContextMenu.Show(sender, New Point(e.x, e.y)) - sender contenant bien
l'instance de l'ocx et e.x, e.y les coordonnées.

Lors de l'execution, le ContextMenu s'affiche bien mais TOUS les MenuItems
sont grisés comme si tous MenuItems avaient la propriétées Enabled=
False....Inutile de préciser que j'ai testé avant et SURTOUT après de faire
le Show :

For Each MenuItemObj As MenuItem In MyContextMenu.MenuItems
Console.WriteLine(MenuItemObj.Enabled.ToString)
Next

Cela m'affiche bien True pour chaque MenuItem.
J'ai pensé à un problème de Paint, cependant, l'événement Click de chaque
MenuItem n'est pas accessible comme si la propriétée Enabled était vraiment à
l'état False...

Merci d'avance pour toute réponse subceptible de m'éclairer.

--
fmillox

4 réponses

Avatar
Gilles TOURREAU
Le Thu, 20 Dec 2007 11:29:01 +0100, Millox Frédéric
a écrit:

Bonjour,

J'ai un problème qui me paraît insoluble... :-(

J'utilise un ocx qui me permet de manipuler les images. Cet ocx ne
contient
pas d'attribut ContextMenu pour lui attribuer un ContextMenu défini. J'ai
donc utilisé la manip classique qui consiste à tester le click droit
lors de
l'événement MouseDown de l'ocx et à afficher le ContextMenu par :

MyContextMenu.Show(sender, New Point(e.x, e.y)) - sender contenant bien
l'instance de l'ocx et e.x, e.y les coordonnées.

Lors de l'execution, le ContextMenu s'affiche bien mais TOUS les
MenuItems
sont grisés comme si tous MenuItems avaient la propriétées Enabled > False....Inutile de préciser que j'ai testé avant et SURTOUT après de
faire
le Show :

For Each MenuItemObj As MenuItem In MyContextMenu.MenuItems
Console.WriteLine(MenuItemObj.Enabled.ToString)
Next

Cela m'affiche bien True pour chaque MenuItem.
J'ai pensé à un problème de Paint, cependant, l'événement Click de chaque
MenuItem n'est pas accessible comme si la propriétée Enabled était
vraiment à
l'état False...

Merci d'avance pour toute réponse subceptible de m'éclairer.




Bonjour et bonne année !

Avez-vous testé tout simplement si MyContextMenu.Enabled = False ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Millox Frédéric
Bonjour, mes meilleurs voeux pour cette nouvelle année !!!

Merci pour votre réponse.
La propriétée Enabled n'existe pas pour un objet ContextMenu...
J'ai testé d'afficher MyContextMenu de la même manière (click droit lors de
l'événement MouseDown + MyContextMenu.Show(sender, New Point(e.x, e.y)) )
dans un panel. Tout marche bien.
Par contre, si je fais : clique droit sur le panel (tous les MenusItems sont
nickels) puis clicque droit sur l'ocx (tous les MenuItems sont grisés) et
enfin reclique droit sur le panel, les MenuItems sont encore grisés... Bien
sûr quand je teste pour chaque MenuItem la propriétée Enabled, elle est égale
à True...
Je ne compends rien à ce phénomène étrange.

Une petie idée ??? :-(

Bonne journée.

--
fmillox


"Gilles TOURREAU" a écrit :

Le Thu, 20 Dec 2007 11:29:01 +0100, Millox Frédéric
a écrit:

> Bonjour,
>
> J'ai un problème qui me paraît insoluble... :-(
>
> J'utilise un ocx qui me permet de manipuler les images. Cet ocx ne
> contient
> pas d'attribut ContextMenu pour lui attribuer un ContextMenu défini. J'ai
> donc utilisé la manip classique qui consiste à tester le click droit
> lors de
> l'événement MouseDown de l'ocx et à afficher le ContextMenu par :
>
> MyContextMenu.Show(sender, New Point(e.x, e.y)) - sender contenant bien
> l'instance de l'ocx et e.x, e.y les coordonnées.
>
> Lors de l'execution, le ContextMenu s'affiche bien mais TOUS les
> MenuItems
> sont grisés comme si tous MenuItems avaient la propriétées Enabled > > False....Inutile de préciser que j'ai testé avant et SURTOUT après de
> faire
> le Show :
>
> For Each MenuItemObj As MenuItem In MyContextMenu.MenuItems
> Console.WriteLine(MenuItemObj.Enabled.ToString)
> Next
>
> Cela m'affiche bien True pour chaque MenuItem.
> J'ai pensé à un problème de Paint, cependant, l'événement Click de chaque
> MenuItem n'est pas accessible comme si la propriétée Enabled était
> vraiment à
> l'état False...
>
> Merci d'avance pour toute réponse subceptible de m'éclairer.
>

Bonjour et bonne année !

Avez-vous testé tout simplement si MyContextMenu.Enabled = False ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Gilles TOURREAU [MVP]
Le Mon, 07 Jan 2008 08:14:01 +0100, Millox Frédéric
a écrit:

Bonjour, mes meilleurs voeux pour cette nouvelle année !!!

Merci pour votre réponse.
La propriétée Enabled n'existe pas pour un objet ContextMenu...



Autant pour moi...

J'ai testé d'afficher MyContextMenu de la même manière (click droit lors
de
l'événement MouseDown + MyContextMenu.Show(sender, New Point(e.x, e.y)) )
dans un panel. Tout marche bien.
Par contre, si je fais : clique droit sur le panel (tous les MenusItems
sont
nickels) puis clicque droit sur l'ocx (tous les MenuItems sont grisés) et
enfin reclique droit sur le panel, les MenuItems sont encore grisés...
Bien
sûr quand je teste pour chaque MenuItem la propriétée Enabled, elle est
égale
à True...
Je ne compends rien à ce phénomène étrange.

Une petie idée ??? :-(

Bonne journée.




Avez-vous essayé avec la nouvelle classe du 2.0 : ContextMenuStrip ?

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Millox Frédéric
Bonjour Gilles,

J'aurais bien voulu, mais je suis en 1.1...

Bonne journée.

--
fmillox


"Gilles TOURREAU [MVP]" a écrit :

Le Mon, 07 Jan 2008 08:14:01 +0100, Millox Frédéric
a écrit:

> Bonjour, mes meilleurs voeux pour cette nouvelle année !!!
>
> Merci pour votre réponse.
> La propriétée Enabled n'existe pas pour un objet ContextMenu...

Autant pour moi...

> J'ai testé d'afficher MyContextMenu de la même manière (click droit lors
> de
> l'événement MouseDown + MyContextMenu.Show(sender, New Point(e.x, e.y)) )
> dans un panel. Tout marche bien.
> Par contre, si je fais : clique droit sur le panel (tous les MenusItems
> sont
> nickels) puis clicque droit sur l'ocx (tous les MenuItems sont grisés) et
> enfin reclique droit sur le panel, les MenuItems sont encore grisés...
> Bien
> sûr quand je teste pour chaque MenuItem la propriétée Enabled, elle est
> égale
> à True...
> Je ne compends rien à ce phénomène étrange.
>
> Une petie idée ??? :-(
>
> Bonne journée.
>

Avez-vous essayé avec la nouvelle classe du 2.0 : ContextMenuStrip ?

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr