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

[WinForms] Modifier à la volée le caractère saisi dans l'événement KeyPress

10 réponses
Avatar
Cédric Girard
Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une DataGrid,
pouvoir modifier à la volée dans l'événement KeyPress le caractère envoyé
par l'utilisateur, le but étant de gérer directement lors de la saisie les
séparateurs décimaux (par ex. remplacer systématiquement le point et la
virgule par le séparateur décimal en vigueur dans les paramètres régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur de
KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet puisqu'il
n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une raison
que j'ignore, ça "bloque" en saisie. Voici le code que j'avais essayé
d'utiliser.


===================================================================

Private _NoKeyPress As Boolean = False 'Si VRAI l'événement KeyPress
est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not _NoKeyPress
Then
'On force la "saisie" du bon séparateur décimal pour les
formats monétaires
e.Handled = True
_NoKeyPress = True
SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)
_NoKeyPress = False
End If

[...]

End Select

===================================================================


Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de cellule car
comme la grille est "bindée" j'ai systématiquement un message à propos du
séparateur (nb : les utilisateurs se servent du pavé numérique pour la
saisie, et par défaut c'est la virgule qui est paramétrée en séparateur
décimal => problème évident car ils utilisent le point du pavé numérique en
saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com

10 réponses

Avatar
Thierry HUGUET [MS]
J'ai le code suivant (VB 2005) mais que je n'ai testé qu'avec un control
textbox. Mais je pense que le principe est le même.

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown

' The Windows message value VK_DECIMAL is defined in Winuser.h.

Dim VK_DECIMAL As Integer = &H6E 'Decimal Separator key code from
keyboard numpad

If e.KeyCode = VK_DECIMAL Then VK_DECIMAL_pressed = True

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If VK_DECIMAL_pressed = True Then

e.KeyChar =
My.Application.Culture.NumberFormat.CurrencyDecimalSeparator 'replace with
the System Decimal Separator character
e.Handled = False
VK_DECIMAL_pressed = False

End If

End Sub

Il faut bien entedu définir la variable VK_DECIMAL_pressed comme suit:
Public VK_DECIMAL_pressed As Boolean = False

Thierry HUGUET
Microsoft

"Cédric Girard" a écrit dans le message de news:

Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une DataGrid,
pouvoir modifier à la volée dans l'événement KeyPress le caractère envoyé
par l'utilisateur, le but étant de gérer directement lors de la saisie les
séparateurs décimaux (par ex. remplacer systématiquement le point et la
virgule par le séparateur décimal en vigueur dans les paramètres
régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur de
KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet puisqu'il
n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une
raison que j'ignore, ça "bloque" en saisie. Voici le code que j'avais
essayé d'utiliser.


================================================================== >
Private _NoKeyPress As Boolean = False 'Si VRAI l'événement KeyPress
est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not _NoKeyPress
Then
'On force la "saisie" du bon séparateur décimal pour
les formats monétaires
e.Handled = True
_NoKeyPress = True

SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)
_NoKeyPress = False
End If

[...]

End Select

================================================================== >

Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de cellule
car comme la grille est "bindée" j'ai systématiquement un message à propos
du séparateur (nb : les utilisateurs se servent du pavé numérique pour la
saisie, et par défaut c'est la virgule qui est paramétrée en séparateur
décimal => problème évident car ils utilisent le point du pavé numérique
en saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com



Avatar
Olivier C.
Bonjour,
Je suis interessé par la réponse car j'ai moi aussi le même problème.
Il y a une chose qui me gène dans le code de la solution que vous
proposez, c'est que e.KeyChar est en lecture seule.
Etes-vous sûr de l'avoir bien testé?

Olivier

Thierry HUGUET [MS] a écrit :
J'ai le code suivant (VB 2005) mais que je n'ai testé qu'avec un control
textbox. Mais je pense que le principe est le même.

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown

' The Windows message value VK_DECIMAL is defined in Winuser.h.

Dim VK_DECIMAL As Integer = &H6E 'Decimal Separator key code from
keyboard numpad

If e.KeyCode = VK_DECIMAL Then VK_DECIMAL_pressed = True

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If VK_DECIMAL_pressed = True Then

e.KeyChar =
My.Application.Culture.NumberFormat.CurrencyDecimalSeparator 'replace with
the System Decimal Separator character
e.Handled = False
VK_DECIMAL_pressed = False

End If

End Sub

Il faut bien entedu définir la variable VK_DECIMAL_pressed comme suit:
Public VK_DECIMAL_pressed As Boolean = False

Thierry HUGUET
Microsoft

"Cédric Girard" a écrit dans le message de news:


Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une DataGrid,
pouvoir modifier à la volée dans l'événement KeyPress le caractère envoyé
par l'utilisateur, le but étant de gérer directement lors de la saisie les
séparateurs décimaux (par ex. remplacer systématiquement le point et la
virgule par le séparateur décimal en vigueur dans les paramètres
régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur de
KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet puisqu'il
n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une
raison que j'ignore, ça "bloque" en saisie. Voici le code que j'avais
essayé d'utiliser.


================================================================== >>
Private _NoKeyPress As Boolean = False 'Si VRAI l'événement KeyPress
est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not _NoKeyPress
Then
'On force la "saisie" du bon séparateur décimal pour
les formats monétaires
e.Handled = True
_NoKeyPress = True

SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)
_NoKeyPress = False
End If

[...]

End Select

================================================================== >>

Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de cellule
car comme la grille est "bindée" j'ai systématiquement un message à propos
du séparateur (nb : les utilisateurs se servent du pavé numérique pour la
saisie, et par défaut c'est la virgule qui est paramétrée en séparateur
décimal => problème évident car ils utilisent le point du pavé numérique
en saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com








Avatar
Cédric Girard
Merci pour cette réponse.

Le hic c'est que la propriété e.Keychar est en lecture seule (dans VS.Net
2003 en tout cas !) ; c'est justement ce que j'aimerais faire ;-)

J'ai bien essayé de modifier le contenu de la cellule sur le BeforeColUpdate
de ma grid mais comme le champs est défini en Currency, j'ai un message (non
bloquant par ailleurs) AVANT le passage dans cet événement...

En fait, aucun des événements de gestion des touches ne permet de substituer
la saisie, visiblement :-(

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com



"Thierry HUGUET [MS]" a écrit dans le
message de news:
J'ai le code suivant (VB 2005) mais que je n'ai testé qu'avec un control
textbox. Mais je pense que le principe est le même.

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown

' The Windows message value VK_DECIMAL is defined in Winuser.h.

Dim VK_DECIMAL As Integer = &H6E 'Decimal Separator key code from
keyboard numpad

If e.KeyCode = VK_DECIMAL Then VK_DECIMAL_pressed = True

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If VK_DECIMAL_pressed = True Then

e.KeyChar =
My.Application.Culture.NumberFormat.CurrencyDecimalSeparator 'replace with
the System Decimal Separator character
e.Handled = False
VK_DECIMAL_pressed = False

End If

End Sub

Il faut bien entedu définir la variable VK_DECIMAL_pressed comme suit:
Public VK_DECIMAL_pressed As Boolean = False

Thierry HUGUET
Microsoft

"Cédric Girard" a écrit dans le message de news:

Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une DataGrid,
pouvoir modifier à la volée dans l'événement KeyPress le caractère envoyé
par l'utilisateur, le but étant de gérer directement lors de la saisie
les séparateurs décimaux (par ex. remplacer systématiquement le point et
la virgule par le séparateur décimal en vigueur dans les paramètres
régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur de
KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet puisqu'il
n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une
raison que j'ignore, ça "bloque" en saisie. Voici le code que j'avais
essayé d'utiliser.


================================================================== >>
Private _NoKeyPress As Boolean = False 'Si VRAI l'événement KeyPress
est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not _NoKeyPress
Then
'On force la "saisie" du bon séparateur décimal pour
les formats monétaires
e.Handled = True
_NoKeyPress = True

SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)
_NoKeyPress = False
End If

[...]

End Select

================================================================== >>

Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de cellule
car comme la grille est "bindée" j'ai systématiquement un message à
propos du séparateur (nb : les utilisateurs se servent du pavé numérique
pour la saisie, et par défaut c'est la virgule qui est paramétrée en
séparateur décimal => problème évident car ils utilisent le point du pavé
numérique en saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com







Avatar
Ambassadeur Kosh
en 2005, c'est get / set.


Le hic c'est que la propriété e.Keychar est en lecture seule (dans VS.Net
2003 en tout cas !) ; c'est justement ce que j'aimerais faire ;-)


Avatar
Cédric Girard
Ahhh OK

Et là ce n'est même pas la peine de penser ne serait-ce qu'une seconde à
passer à VS.Net 2005 :-(

(pas le temps et investissement certainement pas prévu cette année !!!)


Bon je ne sais pas comment je vais faire :-(

Y'a pas moyen en DotNet 2003 (je précise cette fois !) d'intercepter et de
remplacer une touche ou un caractère ??? C'est dingue ça !


--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com


"Ambassadeur Kosh" a écrit dans le message de
news: %23sE6%
en 2005, c'est get / set.


Le hic c'est que la propriété e.Keychar est en lecture seule (dans VS.Net
2003 en tout cas !) ; c'est justement ce que j'aimerais faire ;-)






Avatar
Thierry HUGUET [MS]
Oui, le code a bien été testé et je confirme qu'il fonctionne très bien avec
VS 2005.

Thierry
"Olivier C." a écrit dans le message de
news: %
Bonjour,
Je suis interessé par la réponse car j'ai moi aussi le même problème.
Il y a une chose qui me gène dans le code de la solution que vous
proposez, c'est que e.KeyChar est en lecture seule.
Etes-vous sûr de l'avoir bien testé?

Olivier

Thierry HUGUET [MS] a écrit :
J'ai le code suivant (VB 2005) mais que je n'ai testé qu'avec un control
textbox. Mais je pense que le principe est le même.

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown

' The Windows message value VK_DECIMAL is defined in Winuser.h.

Dim VK_DECIMAL As Integer = &H6E 'Decimal Separator key code from
keyboard numpad

If e.KeyCode = VK_DECIMAL Then VK_DECIMAL_pressed = True

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If VK_DECIMAL_pressed = True Then

e.KeyChar =
My.Application.Culture.NumberFormat.CurrencyDecimalSeparator 'replace
with the System Decimal Separator character
e.Handled = False
VK_DECIMAL_pressed = False

End If

End Sub

Il faut bien entedu définir la variable VK_DECIMAL_pressed comme suit:
Public VK_DECIMAL_pressed As Boolean = False

Thierry HUGUET
Microsoft

"Cédric Girard" a écrit dans le message de news:


Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une DataGrid,
pouvoir modifier à la volée dans l'événement KeyPress le caractère envoyé
par l'utilisateur, le but étant de gérer directement lors de la saisie
les séparateurs décimaux (par ex. remplacer systématiquement le point et
la virgule par le séparateur décimal en vigueur dans les paramètres
régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur de
KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet puisqu'il
n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une
raison que j'ignore, ça "bloque" en saisie. Voici le code que j'avais
essayé d'utiliser.


================================================================== >>>
Private _NoKeyPress As Boolean = False 'Si VRAI l'événement KeyPress
est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not _NoKeyPress
Then
'On force la "saisie" du bon séparateur décimal pour
les formats monétaires
e.Handled = True
_NoKeyPress = True

SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)
_NoKeyPress = False
End If

[...]

End Select

================================================================== >>>

Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de cellule
car comme la grille est "bindée" j'ai systématiquement un message à
propos du séparateur (nb : les utilisateurs se servent du pavé numérique
pour la saisie, et par défaut c'est la virgule qui est paramétrée en
séparateur décimal => problème évident car ils utilisent le point du pavé
numérique en saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com









Avatar
Olivier C.
Moi aussi, je fonctionne encore en VS 2003. ;-(

Olivier C. a écrit :
Bonjour,
Je suis interessé par la réponse car j'ai moi aussi le même problème.
Il y a une chose qui me gène dans le code de la solution que vous
proposez, c'est que e.KeyChar est en lecture seule.
Etes-vous sûr de l'avoir bien testé?

Olivier

Thierry HUGUET [MS] a écrit :

J'ai le code suivant (VB 2005) mais que je n'ai testé qu'avec un
control textbox. Mais je pense que le principe est le même.

Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown

' The Windows message value VK_DECIMAL is defined in Winuser.h.

Dim VK_DECIMAL As Integer = &H6E 'Decimal Separator key code
from keyboard numpad

If e.KeyCode = VK_DECIMAL Then VK_DECIMAL_pressed = True

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If VK_DECIMAL_pressed = True Then

e.KeyChar =
My.Application.Culture.NumberFormat.CurrencyDecimalSeparator 'replace
with the System Decimal Separator character
e.Handled = False
VK_DECIMAL_pressed = False

End If

End Sub

Il faut bien entedu définir la variable VK_DECIMAL_pressed comme suit:
Public VK_DECIMAL_pressed As Boolean = False

Thierry HUGUET
Microsoft

"Cédric Girard" a écrit dans le message de
news:

Bonjour

Je souhaite dans le cadre d'une gestion de la saisie dans une
DataGrid, pouvoir modifier à la volée dans l'événement KeyPress le
caractère envoyé par l'utilisateur, le but étant de gérer directement
lors de la saisie les séparateurs décimaux (par ex. remplacer
systématiquement le point et la virgule par le séparateur décimal en
vigueur dans les paramètres régionaux)

Si cela était très simple en VB6 (il suffisait de remplacer la valeur
de KeyAscii dans l'événement KeyPress) ça l'est moins en DotNet
puisqu'il n'existe pas de propriétés dans les EventArgs permettant cela.


J'ai tenté d'utiliser SendKeys pour "simuler" la saisie mais pour une
raison que j'ignore, ça "bloque" en saisie. Voici le code que j'avais
essayé d'utiliser.


================================================================== >>>
Private _NoKeyPress As Boolean = False 'Si VRAI l'événement
KeyPress est sans action

[...]

Private Sub dbgrdTrav_KeyPress(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.KeyPressEventArgs) Handles dbgrdTrav.KeyPress

'Filtrage de la saisie
Select Case dbgrdTrav.Col

[...]

Case 11, 12
'Saisies des frais annexes et de restaurants (montants
monétaires)
If e.KeyChar <> "." And e.KeyChar <> "," And Not
Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
'Annulation de la saisie
e.Handled = True
End If
If e.KeyChar = "." Or e.KeyChar = "," And Not
_NoKeyPress Then
'On force la "saisie" du bon séparateur décimal
pour les formats monétaires
e.Handled = True
_NoKeyPress = True

SendKeys.Send(Application.CurrentCulture.NumberFormat.NumberDecimalSeparator)

_NoKeyPress = False
End If

[...]

End Select

================================================================== >>>

Auriez-vous une solution à mon problème ?

Je ne peux (et ne veux) pas corriger le séparateur en sortie de
cellule car comme la grille est "bindée" j'ai systématiquement un
message à propos du séparateur (nb : les utilisateurs se servent du
pavé numérique pour la saisie, et par défaut c'est la virgule qui est
paramétrée en séparateur décimal => problème évident car ils
utilisent le point du pavé numérique en saisie !)


Merci :-)

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com










Avatar
adebaene
Cédric Girard a écrit :


Y'a pas moyen en DotNet 2003 (je précise cette fois !) d'intercepter et de
remplacer une touche ou un caractère ??? C'est dingue ça !



Tu peux toujours surcharger WndProc ou bien PreProcessMessage

Arnaud
MVP - VC
Avatar
Ambassadeur Kosh
je vote aussi pour la pompe à message.
Arnaud, tu m'a fauché l'herbe sous le pied.
Avatar
Cédric Girard
Bonjour


Merci pour le truc. Euh vous n'auriez pas un lien ou un petit exemple ? Je
vais chercher de mon côté dans cette voie, mais si vous aviez qqchose de
"tout prêt" en guise d'exemple je suis preneur !


Merci

^_^

--
Cédric Girard
OCERA CFGA (Aube)
Mon site perso : http://www.aube-nature.com


a écrit dans le message de news:


Cédric Girard a écrit :


Y'a pas moyen en DotNet 2003 (je précise cette fois !) d'intercepter et de
remplacer une touche ou un caractère ??? C'est dingue ça !



Tu peux toujours surcharger WndProc ou bien PreProcessMessage

Arnaud
MVP - VC