Nous avons un scénario dans lequel nous exposons un ensemble de WinForms UserControls
via COM à une application Legacy VB6. Nous avons 3 contrôles différents qui ont un MenuStrip
dessus qui a le Ctrl + F la touche de raccourci mappée à un élément de menu qui invoque une boîte de dialogue spécifique de contrôle des éléments lorsque le raccourci est entré. Lorsque nous essayons de tester ce code dans notre shell WinForms, la boîte de dialogue appropriée (celle hébergée dans le MdiChild
actif) apparaît lorsque les 3 contrôles existent, mais dans l'hôte VB6, la mauvaise boîte de dialogue apparaît généralement (il semble toujours être le premier contrôle qui a été créé). Je suis à peu près certain que cela a quelque chose à voir avec les pompes de messages et tout, mais je n'arrive pas à comprendre comment m'assurer que le bon ToolStripMenuItem
est invoqué lorsque nous entrons dans la touche de raccourci.Comment faire pour que la touche de raccourci ToolStripMenuItem fonctionne lorsque le contrôle WinForms est hébergé dans VB6 Formulaire
Je sais que l'option d'utiliser un gestionnaire/service ShortcutKey
global/singleton qui remplace ProcessCmdKey
est une possibilité, mais ce serait le dernier recours sur lequel nous voulons nous appuyer. J'ai juste l'impression qu'une pompe à message doit être démarrée.