collargol123
Messages postés86Date d'inscriptionjeudi 24 octobre 2013StatutMembreDernière intervention 2 avril 2014
-
29 oct. 2013 à 00:04
collargol123
Messages postés86Date d'inscriptionjeudi 24 octobre 2013StatutMembreDerniè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.
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.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 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.
collargol123
Messages postés86Date d'inscriptionjeudi 24 octobre 2013StatutMembreDerniè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 : ")
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
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 !