équivalent de sendkeys en VB net

Résolu
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014 - 29 oct. 2013 à 00:04
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014 - 2 nov. 2013 à 01:06
Bonjour,

Je souhaite envoyer du texte (par exemple la date d'aujourd'hui) dans une RTBox.
En VB6 on utilise sendeys. Cela ne fonctionne pas en VB net. Je perds la main et je dois faire un ctrl alt supp pour la récupérer.
De la même maniere, si je souhaite que ce texte soit en gras et coloré, il me revient toujours le même leitmotiv (read only).

Voici mon code : en cliquant sur un bouton de commande

Me.rtb.Select() 'focus sur la RTB
Me.rtb.SelectionStart = 0 'début de la ligne
Me.rtb.SelectionFont.Bold.ToString()
Me.rtb.SelectionFont.Underline.ToString()
Me.rtb.ForeColor.Blue.ToString() 'bleu

Dim cejour As String 'pour la date
cejour = StrConv(Format$(Date.Today, "dddd d MMMM yyyy"), vbProperCase)


SendKeys.Send(cejour)
SendKeys.Send("{ENTER}")

Me.rtbObs.SelectionStart = Len(cejour)
End Sub

Peut-etre faut-il rajouter une methode ?
Sur MSDN j'ai trouvé cela , mlais cela ne change rien
'Déclaration
Public Shared Sub Send(ByVal keys As String)
'Utilisation
SendKeys.Send(keys)
End Sub

merci de votre avis
PS : je n'ai rien trouvé d'interessant sur le net, c'est pourquoi je sollicite votre avis.
A voir également:

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 29/10/2013 à 05:43
Bonjour,
je ne comprends à vrai dire pas l'utilité même d'un sendkeys pour écrire dans la richtextbox de ton propre form (y compis en VB6, d'ailleurs)
l'utilisation de la propriété SelectedText = "blabla" devrait suffire pour insérer "blabla" au point d'insertion défini par SelectionStart.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 oct. 2013 à 12:36
En aparté, j'ajouterais que dans ton code, il y a plusieurs choses qui me semblent étrange :
Me.rtb.SelectionFont.Bold.ToString()
Cette ligne ne fait aucune action, à quoi sert-elle ?

cejour = StrConv(Format$(Date.Today, "dddd d MMMM yyyy"), vbProperCase)
Retires l'import automatique de l'espace de nom "Microsoft.VisualBasic" et utilises des méthodes du framework :
DateTime.Now.ToString("...") par exemple.
0
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014
30 oct. 2013 à 00:35
Bonsoir,

Suite à vos conseils, j'arrive à envoyer le texte que je veux. SUPER et pas de besoin de sendkeys !
Par contre, j'essaie de modifier la font avec le code ci-dessous. Rien ne fonctionne. Auriez-vous une idée ?. Avec les différents tests, je n'arrive d'ailleurs pas à obtenir gras + surligné

Je souhaite que seule la date apparaisse en BLEUE ARIAL GRAS et SURLIGNEE

Private fBold As New Font("Arial", 12, FontStyle.Bold, GraphicsUnit.World)
Private fcolor As New Color
Private fNormal As New Font("Arial", 12, FontStyle.Regular, GraphicsUnit.World) 'FontStyle.Regular)

Private Sub cmdDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDate.Click

Me.rtb.Select() 'focus sur la RTB
Me.rtb.SelectionStart = 0 'début de la ligne

'la date doit etre GRAS BLEUE SURLIGNEE ARIAL 12
Me.rtb.Font = fBold
Me.rtb.ForeColor = fcolor.Blue

'On envoie la date
Me.rtb.SelectedText = StrConv(DateTime.Now.ToString("dddd d MMMM yyyy"), VbStrConv.ProperCase)

'on reprend la police normal et la couleur normale
Me.rtb.Font = fNormal
Me.rtb.ForeColor = fcolor.Black

'retour à la ligne
Me.rtb.SelectedText = vbNewLine

'on envoie du texte
Me.rtb.SelectedText = "A faire : "

'debut d'eciture à partir d'à faire
Me.rtb.SelectionStart = Len(DateTime.Now.ToString("dddd d MMMM yyyy") & vbCrLf & "A
faire : ")


Merci de votre avis
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 oct. 2013 à 06:30
Plus rien à voir avec le sujet (Équivalent de sendkeys en VB net) de la présente discussion !
Clos celle-ci (un clic sur le tag "RESOLU") et ouvre une autre discussion relative à la difficulté rencontrée de mettre en forme le texte d'une richtextbox.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 30/10/2013 à 08:05
Avant toutefois d'ouvrir une nouvelle discussion, fais donc un petit tour sur MSDN.
Tu y apprendras que la mise en forme d'une chaîne de caractères dans une richtextbox se fait sur une chaîne au préalable sélectionnée (selectionstart et- selectionlength)
On lui applique ensuite (à cette sélection) la police, etc ...(selectionfont, selectioncolor). Au passage : le principe est exactement le même sous VB6 !

A lire, donc :
http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.selectionfont.aspx#Y253


http://msdn.microsoft.com/en-us/library/yh8963yx.aspx

et je te conseille de lire également cette discussion (à toi d'y voir pourquoi).
http://www.vbforums.com/showthread.php?524305-font-style-is-bold-underline
0

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

Posez votre question
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014
2 nov. 2013 à 01:06
merci pour les infos
pas évident d'utiliser fontproperty mais ça y est j'y suis arrivé !
0
Rejoignez-nous