[vb.net] keypress marche pas

Résolu
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 - 2 avril 2005 à 11:12
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 - 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
A voir également:

7 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
2 avril 2005 à 13:31
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.
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 avril 2005 à 15:17
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.
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
2 avril 2005 à 11:42
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.
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
2 avril 2005 à 12:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 avril 2005 à 14:01
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.
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
2 avril 2005 à 14:54
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
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
2 avril 2005 à 15:46
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
0
Rejoignez-nous