Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Evitar seleccionar contenido de un Text1

Estas en el tema de Evitar seleccionar contenido de un Text1 en el foro de Visual Basic clásico en Foros del Web. Lo que quiero es que nadie pueda seleccionar el contenido de una caja de texto si lo intentan que simplemente no haga nada, en resumen ...
  #1 (permalink)  
Antiguo 23/04/2010, 12:08
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Evitar seleccionar contenido de un Text1

Lo que quiero es que nadie pueda seleccionar el contenido de una caja de texto si lo intentan que simplemente no haga nada, en resumen no se pueda.

  #2 (permalink)  
Antiguo 23/04/2010, 13:56
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Evitar seleccionar contenido de un Text1

No se si esto que te digo sea lo que pretendas, pero con decirle a la caja de texto que te la deshabilite creo que con eso queda corregido tu problema algo asi como:

Código:
   Text1.Enabled = False
Como dije anteriormente no se si eso solucione tu problema, ya nos contaras
  #3 (permalink)  
Antiguo 23/04/2010, 14:06
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Evitar seleccionar contenido de un Text1

No soluciona, por que tambien necesito escribir en la caja de texto.

Alguna otra opcion.
  #4 (permalink)  
Antiguo 23/04/2010, 14:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Evitar seleccionar contenido de un Text1

ummmmm no entiendo, en un principio decias que no hiciera nada y ahora dices que tambien necesitas escribir en la caja de texto, hojala pudieras explicarte un poco mas y con gusto te ayudamos.
  #5 (permalink)  
Antiguo 23/04/2010, 14:16
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Evitar seleccionar contenido de un Text1

espero que esto te sirva ahora
Código:
   Text1.Locked = True
esta es su referencia del control
Código:
Devuelve o establece un valor que indica si puede modificarse el contenido de un control TextBox.

Sintaxis

objeto.Locked [= booleano]

La sintaxis de la propiedad Locked consta de las siguientes partes:

Parte Descripción 
objeto Unaexpresión de objeto que da como resultado un control RichTextBox. 
booleano Unaexpresión booleana que especifica si el contenido de un control puede modificarse, como se describe en Valores. 


Valores

Los valores de booleano son:

Valor Descripción 
True Puede desplazar y resaltar el texto del control, pero no puede modificarlo. El programa todavía puede modificar el texto mediante el cambio de la propiedad Text. 
False (Predeterminado) Puede modificar el texto del control.
  #6 (permalink)  
Antiguo 23/04/2010, 14:28
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Evitar seleccionar contenido de un Text1

Lo pongo con un ejemplo sencillo, tengo mi Text1 con x contenido, lo unico que necesito es que no se pueda seleccionar su contenido, despues de eso debe funcionar como cualquier caja de texto.
Locked y enabled no puedo utilizarlos por que no me permitiran ingresar mas contenido, digamos que para que no puedan copiar su contenido, aunque yo necesito hacer esto por otro motivo.
  #7 (permalink)  
Antiguo 23/04/2010, 14:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Evitar seleccionar contenido de un Text1

umm, creo que voy entendiendo, lo que voz necesita es que no pueda borrar ni modificar lo que ya esta hecho pero si pueda escribir o me equivoco
  #8 (permalink)  
Antiguo 23/04/2010, 15:40
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Evitar seleccionar contenido de un Text1

si asi es.................
  #9 (permalink)  
Antiguo 23/04/2010, 16:31
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Evitar seleccionar contenido de un Text1

Cuando se trata de algo tan complicado creo que deberías buscar la solución a través de código, supongamos por ejemplo que cuando muestras el contenido en el Textbox memorizas lo que ya hay en el y no deseas que se pueda cambiar, hab´ra por lo tanto x caracteres desde el principio que deseas se respeten, cuando el campo pierda el foco entonces verificas que los primeros caracteres no han cambiado y si lo han hecho los restauras nuevamente y no permites salir del TextBox

Es una idea, pero sin saber exactamente lo que pretendes no se me ocurre nada mas.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #10 (permalink)  
Antiguo 23/04/2010, 20:11
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Evitar seleccionar contenido de un Text1

Hola te explico exactamente lo que necesito quiero copiar un modulo de un programa llamado typing master, como veras en la imagen son 2 textbox o richtextbox's el de arriba esta desabilitado pero el de abajo tiene el cursor para poder escribir, este cursor siempre permanece al final de la cadena y nunca se desenfoca siempre permanece ahi, si intentas colocarlo en otra posicion simplemente no hace nada siempre se queda al final.
En pocas palabras ese Richtextbox o Textbox siempre permanece enfocado y al final de la cadena, y no permite que selecciones nada.

  #11 (permalink)  
Antiguo 23/04/2010, 23:08
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Evitar seleccionar contenido de un Text1

Hola:
Me da la sensación de que realmente no se escribe dentro del RichText llamémosle RTB sino que se trata de una falsa imagen, lo digo por el caracter que simula por ejemplo la pulsación de INTRO

Creo que realmente quien captura los caracteres tecleados y los controla es el formulario ya que aunque es 'algo' complicado pero no mucho se trata de una aplicación muy especial y se puede hacer de esta manera, algo que no sería lógico dentro de un programa de gestión corriente.

Bloqueas el RTB pero no a el propiamente, sino con el truco de insertarlo dentro de un control imagen Bloqueado, pones el KeyPreview del Formulario a True y entonces en el KeyPress del Form lo controlas como desees. un ejemplo muy simple sería este, teniendo en cuenta que hay un caracter "|" que simula un cursor dentro del RTB

Private Sub Form_KeyPress(KeyAscii As Integer)
rtb.Text = Left(rtb.Text, Len(rtb.Text) - 1) & Chr$(KeyAscii) & "|"
End Sub


Piensa que el ejemplo es muy simple y ahí es donde deberás esmerarte para darle una funcionalidad controlando que caracteres puedes pulsarse y cuales no.

No será necesario con el Left ya que evidentemente el RTB tiene otras propiedades que seleccion, sustitucion, etc... como ya debes estar utilizando.

Si la idea te parece adecuada y quieres comentar algo mas, aqui estoy.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #12 (permalink)  
Antiguo 29/04/2010, 08:13
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Evitar seleccionar contenido de un Text1

Cita:
Iniciado por hunter18 Ver Mensaje
Hola te explico exactamente lo que necesito quiero copiar un modulo de un programa llamado typing master, como veras en la imagen son 2 textbox o richtextbox's el de arriba esta desabilitado pero el de abajo tiene el cursor para poder escribir, este cursor siempre permanece al final de la cadena y nunca se desenfoca siempre permanece ahi, si intentas colocarlo en otra posicion simplemente no hace nada siempre se queda al final.
En pocas palabras ese Richtextbox o Textbox siempre permanece enfocado y al final de la cadena, y no permite que selecciones nada.


Hola hunter

haber me cuentas q te parece esta prueba
simplemente es un formX con un textbox TEXT1 y un timer1 lo incrustas y copiando todo el codigo lo ejecutas

Lo que hize primero deshabilite el text1 y habilite la propiedad KEYPREVIEW que permite capturar cualquier pulsacion en cualquier objeto y primero lo evaluaria el FORM despues habilite el timer con un interval 250 para que haga el efecto de de cursor enfocado.


y procederas a escribir lo q quieras y aparecera el "puntero | " siempre al final si la opcion de seleccionar ni borrar el ultimo caracter.
ya q hace una se bloqueo el KeyPress=8 el retroceso o blackspace
Código vb:
Ver original
  1. Private Sub Form_Load()
  2.     Form1.KeyPreview = True
  3.     Timer1.Interval = 250
  4.     Text1.Tag = ""
  5.     Text1.Enabled=false
  6. End Sub
  7. Private Sub Form_KeyPress(KeyAscii As Integer)
  8.     Select Case KeyAscii
  9.         Case 8
  10.         KeyAscii = 0
  11.         Case Else
  12.         Text1.Text = Text1.Tag + Chr(KeyAscii) + Chr(124)
  13.         Text1.Tag = Text1.Tag + Chr(KeyAscii)
  14.     End Select
  15. End Sub
  16. Private Sub Timer1_Timer()
  17.     If Right(Text1.Text, 1) = "|" Then
  18.             Debug.Print "se encontro"
  19.             Text1.Text = Text1.Tag
  20.         Else
  21.             Debug.Print "NO se encontro"
  22.             Text1.Text = Text1.Text + Chr(124)
  23.     End If
  24. End Sub

Última edición por David; 29/04/2010 a las 21:24 Razón: Remover firma
  #13 (permalink)  
Antiguo 29/04/2010, 17:13
 
Fecha de Ingreso: junio-2008
Mensajes: 343
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Evitar seleccionar contenido de un Text1

T3rriMan el codigo funciona correctamente y cumple 100% con lo deseado pero no quiesiera utilizar un timer ni el simbolo "|" ya que si se trata del cursor y no de una simulacion de cursor como lo planteo ERBUSON, si se te ocurre otra idea para solucionar esto y sin desabilitar el TextBox seria bueno, igual me sorprendio la forma en que lo resolviste.

Algo sencillo seria asi, pero aqui me permite seleccionar texto y eso no me gusta aunque tambien soluciona el problema.

Si hay mas idea espero la compartan con este novato.

Código:
Private Sub RichTextBox1_GotFocus()
RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub
 
Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub

Private Sub RichTextBox1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub

Etiquetas: contenido, seleccionar, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:59.