[vb.net] keypress marche pas [Résolu]

Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention - 2 avril 2005 à 11:12 - Dernière réponse : Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention
- 2 avril 2005 à 15:46
Bonjour a tous (et a toutes):

deja j'aimerais dire que j'ai vb.net 2005 mais je pense ca change pas grand chose a ce que je vais demander:



en effet comme je l'indique dans le titre de ce post lorsque je mets ce code suivant (trouvé sur vbfrance):



Private Sub Form_KeyPress(KeyAscii As Integer)

label1.text = Chr(KeyAscii) & " : " & KeyAscii


End Sub



ben ma form reagi pas a l'evenement: il ne se passe rien, j'ai beau
mettre une messagebox ou un autre evenement dans keypress ben il se
passe que dalle, le sub keypress ne fais rien quand une touche est
appuyée.



d'avance: merci !


@+

L U C Y I3 E R @ D
Afficher la suite 

7 réponses

Meilleure réponse
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 2 avril 2005 à 13:31
3
Merci
Il ne faut pas utiliser l'évenement KeyPress, mais KeyDown :



'

' Created by SharpDevelop.

' User:

' Date: 02/04/2005

' Time: 13:17

'

' To change this template use Tools | Options | Coding | Edit Standard Headers.

'

Imports System

Imports System.Drawing

Imports System.Windows.Forms

Imports Microsoft.VisualBasic



Namespace pour__Lucyberad



Public Class MainForm

Inherits System.Windows.Forms.Form

Private label1 As System.Windows.Forms.Label



Public Shared Sub Main

Dim fMainForm As New MainForm

fMainForm.ShowDialog()

End Sub



Public Sub New()

MyBase.New

'

' The
Me.InitializeComponent call is required for Windows Forms designer
support.

'

Me.InitializeComponent

'

' TODO : Add constructor code after InitializeComponents

'

End Sub

#Region " Windows Forms Designer generated code "

' This method is required for Windows Forms designer support.

' Do not change the method
contents inside the source code editor. The Forms designer might

' not be able to load this method if it was changed manually.

Private Sub InitializeComponent()

Me.label1 = New System.Windows.Forms.Label

Me.SuspendLayout

'

'label1

'

Me.label1.Location = New System.Drawing.Point(16, 32)

Me.label1.Name = "label1"

Me.label1.Size = New System.Drawing.Size(144, 16)

Me.label1.TabIndex = 0

Me.label1.Text = "label1"

'

'MainForm

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(292, 266)

Me.Controls.Add(Me.label1)

Me.KeyPreview = true

Me.Name = "MainForm"

Me.Text = "MainForm"

AddHandler KeyDown, AddressOf Me.MainFormKeyDown

Me.ResumeLayout(false)

End Sub

#End Region





Private Sub MainFormKeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)

label1.text = Chr(e.KeyCode) & " : " & e.KeyCode



End Sub



End Class

End Namespace












Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.

Merci econs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 2 avril 2005 à 15:17
3
Merci
Effectivement il faut une petite modif supplémentaire, l'évènement KeyPress à changer entre VB6 et .net.

Si en vb6, c'était le code ascii qui était retourné (il fallait alors
le convertir en carectère), en .net c'est le caractère qui est retourné
(c'est une conversion en ascii qu'il faut donc faire maintenant)



Voila donc le nouveau code qui chez moi fonctionne :



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

Label1.Text = e.KeyChar & " : " & Asc(e.KeyChar)

End Sub


PS : Le code de Manu est écrit avec SharpDevelop et non pas
VisualStudio, la syntaxe est quelquefois un peu différente, c'est
surrement ça qui t'a dérouté.



Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 2 avril 2005 à 11:42
0
Merci
As-tu mis la propriété KeyPreview de ton formulaire à True ?




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention - 2 avril 2005 à 12:48
0
Merci
non en effet je n'avais pas mis keypreview a true

MAIS ca ne marche toujours pas.



je fais une form simple dans laquelle je mets un label, je met keypreview a true
je mets le code, je compile

et le label ne bouge pas d'un poil si je tape comme un malade sur mon clavier (j'ai meme essayé avec la tete)


@+

L U C Y I3 E R @ D
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 2 avril 2005 à 14:01
0
Merci
Essaye avec ça -->


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


C'est du .net2003 mais ça doit etre pareil en 2005





Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention - 2 avril 2005 à 14:54
0
Merci
a
lors avec ta technique casy j'ai l'evenement mais j'ai pas, contrairement a celle de econs, ca qui marche
:

label1.text = Chr(e.KeyCode) & " : " & e.KeyCode

lorsque je le rejoute dans ton sub (casy), j'ai e.keycodes de souligné en bleu.



et y'as un truc que j'ai pas capté sur le code de econs:

AddHandler KeyDown, AddressOf Me.MainFormKeyDown



ca vien peut-etre de la le surlignage? (je fais une supposition)



allez, on vas y arriver



@+

L U C Y I3 E R @ D
Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention - 2 avril 2005 à 15:46
0
Merci
ouais t'as raison ca doit etre a cause de sharp devellop...
sinon maintenant c nickel, ca fonctionne bien

merci a vous deux !

@+
L U C Y I3 E R @ D

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.