Désactiver le curseur Textbox

GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011 - 10 juin 2009 à 09:47
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011 - 22 juin 2009 à 12:11
Bonjour,

J'aimerais savoir comment il serait possible de désactiver le curseur dans un textbox ou un richtexbox.

J'espère que cette opération est possible en .NET car à chaque fois que quelqu'un à posé cette question sur le forum il n'a pas eu de réponse (à croire que ce sujet est tabou ). 

Merci d'avance

10 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juin 2009 à 12:01
salut,

tu peux utiliser l'API HIDECARET

à utiliser alors dans le _Load de la form, et dans le _GetFocus de la zone en question

en VB6 :






Option Explicit


Private Declare Function 
HideCaret 
Lib 
"user32" 
(
ByVal 
hwnd 
As Long

As Long




Private Sub 
Form_Load()

    HideCaret Text1.hwnd
End Sub

Private Sub Text1_GotFocus()
    HideCaret Text1.hwnd
End Sub





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>








à adapter en VB.NET, l'API est alors :


Private Declare Function 
HideCaret 
Lib 
"user32" 
(
ByVal 
hwnd 
As INTPTR

As



INTEGER






++
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
10 juin 2009 à 15:30
Je suis désolé PCPT mais je ne comprend à quoi correspond "Text1". Est-il normal que l'on ne cite jamais le nom de la textbox dont on veux supprimer le curseur?

Le code ne marche pas et les deux 'Text1' sont considérés comme "non déclaré", je m'y suis surement mal pris, voici ce que j'ai tapé:

Public

Class Form1 

Private
Declare
Function HideCaret
Lib
"user32" (
ByVal hwnd
As IntPtr)
As
Integer 

Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.LoadHideCaret(Text1.hwnd)

End
Sub

Private
Sub RichTextBox1_GotFocus()HideCaret(Text1.hwnd)

End
SubEnd

Class
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juin 2009 à 16:00
ton titre parle d'une zone de texte OU zone riche....

je t'ai fais un exemple avec une zone de texte (text1), en vb6....

BREF




Public Class Form1

  Private Declare Function HideCaret Lib"user32" (ByVal hwnd As IntPtr) As Integer

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   HideCaret(RichTextBox1.handle)

  End Sub

  Private Sub RichTextBox1_GotFocus()

    HideCaret(RichTextBox1.handle)




  End Sub







End Class






<!-- Coloration syntaxique vb/vba/vb.net : http://charles.racaud.free.fr/code-syntaxing/ -->

Coloration syntaxique vb/vba/vb.net
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
10 juin 2009 à 16:13
Oui je me doutais bien que c'était pour l'exemple mais quand j'avais testé avec 'Richtextbox1' à la place de 'Text1' l'erreur était pire.

J'ai aussi remplacé les '.hwnd' par des '.handle' et là miracle plus d'erreur.....Sauf que quand je lance mon application le curseur est toujours là (même si ma richtextbox est en 'readonly =true')
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juin 2009 à 16:29
fait le au _SHOW ou équivalent
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
10 juin 2009 à 16:53
Désolé mais ça ne marche toujours pas... même avec richtextbox1_Show() , richtextbox1_Click() ou _GetFocus()

As-tu essayé le code?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 juin 2009 à 06:43
je parlais de show (_shown plutôt) de la form
j'avais essayé en vb6 sur une textbox

je viens d'essayer en vb2008 avec une richtextbox, j'ai juste eu besoin d'ajouter le même appel dans le RichTextBox1_MouseDown
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
11 juin 2009 à 09:59
C'est incroyable, le code ne change absolument rien de mon côté, j'y ai pourtant sortie toute la panoplie d'évènement! voici exactement le code:


Public
Class Form1




Private





Declare





Function

HideCaret


Lib





"user32"

(


ByVal

hwnd


As

IntPtr)


As





Integer



 









Private





Sub

Form1_Load(


ByVal

sender


As

System.Object,


ByVal

e


As

System.EventArgs)


Handles





MyBase

.LoadHideCaret(RichTextBox1.Handle)



End





Sub








Private





Sub

RichTextBox1_MouseDown()HideCaret(RichTextBox1.Handle)



End





Sub








Private





Sub

Form1_Shown()HideCaret(RichTextBox1.Handle)



End





Sub








Private





Sub

RichTextBox1_GotFocus()HideCaret(RichTextBox1.Handle)



End





SubEnd







Class






 
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
12 juin 2009 à 12:15
PCPT à l'aide! Ne me lache pas si près du but!!!
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
22 juin 2009 à 12:11
Up!
0
Rejoignez-nous