J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des
contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a
également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple.
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox.
Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien
aux contrôles ayant le focus et non aux menus de la MDI?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stéphane
Bonjour LiR,
Sur la réception du focus des textbox, il est peut-être possible de désactiver le raccourcis du menu concerné. Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox.
Ctrl+C, ca colle pas ! Mode humour vaseux Off
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
Bonjour LiR,
Sur la réception du focus des textbox, il est peut-être possible de
désactiver le raccourcis du menu concerné.
Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
Textbox.
Ctrl+C, ca colle pas !
Mode humour vaseux Off
Stéphane
"LiR" <LiR@discussions.microsoft.com> a écrit dans le message de news:
A6CAD3A2-55E7-47A1-AFF9-7A8D128CAD0C@microsoft.com...
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des
contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a
également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par
exemple.
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
Textbox.
Comment pourrais-je faire pour que les raccourcis claviers s'appliquent
bien
aux contrôles ayant le focus et non aux menus de la MDI?
Sur la réception du focus des textbox, il est peut-être possible de désactiver le raccourcis du menu concerné. Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox.
Ctrl+C, ca colle pas ! Mode humour vaseux Off
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
Stéphane
2e solution :
ou plus simple,
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est la solution que je retiendrai)
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
2e solution :
ou plus simple,
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est
la solution que je retiendrai)
Stéphane
"LiR" <LiR@discussions.microsoft.com> a écrit dans le message de news:
A6CAD3A2-55E7-47A1-AFF9-7A8D128CAD0C@microsoft.com...
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des
contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a
également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par
exemple.
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
Textbox.
Comment pourrais-je faire pour que les raccourcis claviers s'appliquent
bien
aux contrôles ayant le focus et non aux menus de la MDI?
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est la solution que je retiendrai)
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
Stéphane
Erratum :
Il fallait lire :
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus
Stéphane
"Stéphane" a écrit dans le message de news: %23u6%
Bonjour LiR,
Sur la réception du focus des textbox, il est peut-être possible de désactiver le raccourcis du menu concerné. Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox.
Ctrl+C, ca colle pas ! Mode humour vaseux Off
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
Erratum :
Il fallait lire :
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus
Stéphane
"Stéphane" <nsolsapvaemrgne@npooswpearm-m.fr> a écrit dans le message de
news: %23u6%23b0VxHHA.3364@TK2MSFTNGP02.phx.gbl...
Bonjour LiR,
Sur la réception du focus des textbox, il est peut-être possible de
désactiver le raccourcis du menu concerné.
Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation
de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
Textbox.
Ctrl+C, ca colle pas !
Mode humour vaseux Off
Stéphane
"LiR" <LiR@discussions.microsoft.com> a écrit dans le message de news:
A6CAD3A2-55E7-47A1-AFF9-7A8D128CAD0C@microsoft.com...
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des
contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a
également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par
exemple.
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation
de
CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
Textbox.
Comment pourrais-je faire pour que les raccourcis claviers s'appliquent
bien
aux contrôles ayant le focus et non aux menus de la MDI?
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus
Stéphane
"Stéphane" a écrit dans le message de news: %23u6%
Bonjour LiR,
Sur la réception du focus des textbox, il est peut-être possible de désactiver le raccourcis du menu concerné. Puis de le réactiver sur la perte du focus des textbox.
Private Sub TextBoxes_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.None
End Sub
Private Sub TextBoxes_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
mon_MenuItem.Shortcut = Shortcut.CtrlC
End Sub
Mode humour vaseux On
Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox.
Ctrl+C, ca colle pas ! Mode humour vaseux Off
Stéphane
"LiR" a écrit dans le message de news:
Bonjour à tous,
J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par exemple. Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de CTRL+C déclenche l'action du menu de la MDI et non l'action coller du Textbox. Comment pourrais-je faire pour que les raccourcis claviers s'appliquent bien aux contrôles ayant le focus et non aux menus de la MDI?
Je vous remercie,
LiR
LiR
Bonjour,
Merci pour tes réponses,
Effectivement j'ai imaginé ce genre de solutions, mais mon application ne peut pas se permettre de mettre un handler sur les textbox concernés car cela nécessiterait trop de précautions (dès que j'ajoute un textbox lors de modifications de mon programme il faudrait que je fasse attention...)
Je pense quand même que l'on peut garder un CTRL+C (pour copier!) ou un CTRL+V (pour coller!) et ainsi de suite (la liste est longue) dans le menu principal sans entrer en "conflit" avec les différents contrôles (car il y a aussi des Combobox, des Treeview - labeledit- etc., la liste est également longue).
Je suis sûr que dans le fonctionnement normal de windows, le contrôle qui a le focus doit informer son contrôle parent qu'il traite la commande de raccourci, ce qui semble être prévu, entre autres, par ProcessCmdKey(), mais qui, en pratique ne semble pas fonctionner. Ou, du moins, pas lorsque le contrôle n'a pas de ContextMenu associé (au sens de .Net) ...
Je me suis penché sur ProcessCmdKey, qui, déclenché au niveau de la MDI, montrait bien que la commande était destinée au Textbox qui avait le focus, puisque la propriété hWnd du paramètre msg de la procédure était celui du Textbox. Reste donc que je ne comprends pas pourquoi le textbox n'avertit pas la MDI, en amont, qu'il veut traiter cette commande...
Si quelqu'un avait une info sur le fonctionnement de tout ça, ça me dépannerait bien...
Merci encore pour ton soutien,
LiR
"Stéphane" a écrit :
2e solution :
ou plus simple,
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est la solution que je retiendrai)
Stéphane
"LiR" a écrit dans le message de news:
> Bonjour à tous, > > J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des > contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a > également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par > exemple. > Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de > CTRL+C déclenche l'action du menu de la MDI et non l'action coller du > Textbox. > Comment pourrais-je faire pour que les raccourcis claviers s'appliquent > bien > aux contrôles ayant le focus et non aux menus de la MDI? > > Je vous remercie, > > LiR >
Bonjour,
Merci pour tes réponses,
Effectivement j'ai imaginé ce genre de solutions, mais mon application ne
peut pas se permettre de mettre un handler sur les textbox concernés car cela
nécessiterait trop de précautions (dès que j'ajoute un textbox lors de
modifications de mon programme il faudrait que je fasse attention...)
Je pense quand même que l'on peut garder un CTRL+C (pour copier!) ou un
CTRL+V (pour coller!) et ainsi de suite (la liste est longue) dans le menu
principal sans entrer en "conflit" avec les différents contrôles (car il y a
aussi des Combobox, des Treeview - labeledit- etc., la liste est également
longue).
Je suis sûr que dans le fonctionnement normal de windows, le contrôle qui a
le focus doit informer son contrôle parent qu'il traite la commande de
raccourci, ce qui semble être prévu, entre autres, par ProcessCmdKey(), mais
qui, en pratique ne semble pas fonctionner.
Ou, du moins, pas lorsque le contrôle n'a pas de ContextMenu associé (au
sens de .Net) ...
Je me suis penché sur ProcessCmdKey, qui, déclenché au niveau de la MDI,
montrait bien que la commande était destinée au Textbox qui avait le focus,
puisque la propriété hWnd du paramètre msg de la procédure était celui du
Textbox. Reste donc que je ne comprends pas pourquoi le textbox n'avertit pas
la MDI, en amont, qu'il veut traiter cette commande...
Si quelqu'un avait une info sur le fonctionnement de tout ça, ça me
dépannerait bien...
Merci encore pour ton soutien,
LiR
"Stéphane" a écrit :
2e solution :
ou plus simple,
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est
la solution que je retiendrai)
Stéphane
"LiR" <LiR@discussions.microsoft.com> a écrit dans le message de news:
A6CAD3A2-55E7-47A1-AFF9-7A8D128CAD0C@microsoft.com...
> Bonjour à tous,
>
> J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des
> contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a
> également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par
> exemple.
> Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de
> CTRL+C déclenche l'action du menu de la MDI et non l'action coller du
> Textbox.
> Comment pourrais-je faire pour que les raccourcis claviers s'appliquent
> bien
> aux contrôles ayant le focus et non aux menus de la MDI?
>
> Je vous remercie,
>
> LiR
>
Effectivement j'ai imaginé ce genre de solutions, mais mon application ne peut pas se permettre de mettre un handler sur les textbox concernés car cela nécessiterait trop de précautions (dès que j'ajoute un textbox lors de modifications de mon programme il faudrait que je fasse attention...)
Je pense quand même que l'on peut garder un CTRL+C (pour copier!) ou un CTRL+V (pour coller!) et ainsi de suite (la liste est longue) dans le menu principal sans entrer en "conflit" avec les différents contrôles (car il y a aussi des Combobox, des Treeview - labeledit- etc., la liste est également longue).
Je suis sûr que dans le fonctionnement normal de windows, le contrôle qui a le focus doit informer son contrôle parent qu'il traite la commande de raccourci, ce qui semble être prévu, entre autres, par ProcessCmdKey(), mais qui, en pratique ne semble pas fonctionner. Ou, du moins, pas lorsque le contrôle n'a pas de ContextMenu associé (au sens de .Net) ...
Je me suis penché sur ProcessCmdKey, qui, déclenché au niveau de la MDI, montrait bien que la commande était destinée au Textbox qui avait le focus, puisque la propriété hWnd du paramètre msg de la procédure était celui du Textbox. Reste donc que je ne comprends pas pourquoi le textbox n'avertit pas la MDI, en amont, qu'il veut traiter cette commande...
Si quelqu'un avait une info sur le fonctionnement de tout ça, ça me dépannerait bien...
Merci encore pour ton soutien,
LiR
"Stéphane" a écrit :
2e solution :
ou plus simple,
ne pas utiliser le raccourcis ctrl+c pour autre chose que copier... (c'est la solution que je retiendrai)
Stéphane
"LiR" a écrit dans le message de news:
> Bonjour à tous, > > J'ai une application avec une fenêtre MDI, dans laquelle se trouvent des > contrôles Textbox (situés dans un Panel appartenant à la MDI). La MDI a > également des menus, dont l'un d'entre eux a un reccourci CTRL+C, par > exemple. > Mon problème est que lorsque l'un des Textbox a le focus, l'utilisation de > CTRL+C déclenche l'action du menu de la MDI et non l'action coller du > Textbox. > Comment pourrais-je faire pour que les raccourcis claviers s'appliquent > bien > aux contrôles ayant le focus et non aux menus de la MDI? > > Je vous remercie, > > LiR >