Foros del Web » Programación para mayores de 30 ;) » .NET »

Determinar línea clickeada en TextBox

Estas en el tema de Determinar línea clickeada en TextBox en el foro de .NET en Foros del Web. Hola amigos, Estoy haciendo una pequeña aplicación con Visual Basic .NET 2008, pero se me presentó un problemita. Necesito poder determinar la línea de un ...
  #1 (permalink)  
Antiguo 19/02/2011, 17:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Busqueda Determinar línea clickeada en TextBox

Hola amigos,

Estoy haciendo una pequeña aplicación con Visual Basic .NET 2008, pero se me presentó un problemita. Necesito poder determinar la línea de un TextBox donde el usuario dio doble click en alguno de sus campos. Eso para posteriormente leer el registro de una tabla cuya posición en la tabla es la misma que la posición de la línea en el TextBox (siguiendo el mismo índice). Cualquier ayuda será bienvenida, gracias de antemano.
  #2 (permalink)  
Antiguo 19/02/2011, 19:48
 
Fecha de Ingreso: abril-2010
Mensajes: 66
Antigüedad: 14 años
Puntos: 4
Respuesta: Determinar línea clickeada en TextBox

Estas usando solo un Textbox ¿?

Y el texbox es multiline. . . y como que al dar doble click. .
si pudieras explicarlo un poquito mejor para ver si te puedo ayudar jeje

saludos
  #3 (permalink)  
Antiguo 19/02/2011, 20:37
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Busqueda Respuesta: Determinar línea clickeada en TextBox

Gracias CHOSS por tu pronta respuesta.

El TextBox es multiline, en las líneas se muestran los valores de una tabla (cada línea del TextBox por cada registro de la tabla). La idea es que cuando el usuario de doble click en uno de los campos, se pueda determinar el número de esa línea dentro del TextBox (por ejemplo: es la línea número cinco).

El código que tengo para mostrar los datos es el siguiente:

For i = 0 To resultadoSQL.FieldCount - 1
If TextBox1.Text <> "" Then
TextBox1.Text = TextBox1.Text & Chr(9) & resultadoSQL.GetName(i)
Else
TextBox1.Text = resultadoSQL.GetName(i)
End If
Next i

While resultadoSQL.Read
TextBox1.Text = TextBox1.Text & Chr(13) & Chr(10)
For i = 0 To resultadoSQL.FieldCount - 1
If i = 0 Then
TextBox1.Text = TextBox1.Text & resultadoSQL(i).ToString
Else
TextBox1.Text = TextBox1.Text & Chr(9) & resultadoSQL(i).ToString
End If
Next i
End While

Si necesitas todo el código lo puedo enviar completo. Gracias y saludos.
  #4 (permalink)  
Antiguo 20/02/2011, 23:35
 
Fecha de Ingreso: abril-2010
Mensajes: 66
Antigüedad: 14 años
Puntos: 4
Respuesta: Determinar línea clickeada en TextBox

Cita:
Iniciado por lennox Ver Mensaje
Gracias CHOSS por tu pronta respuesta.

El TextBox es multiline, en las líneas se muestran los valores de una tabla (cada línea del TextBox por cada registro de la tabla). La idea es que cuando el usuario de doble click en uno de los campos, se pueda determinar el número de esa línea dentro del TextBox (por ejemplo: es la línea número cinco).

El código que tengo para mostrar los datos es el siguiente:

For i = 0 To resultadoSQL.FieldCount - 1
If TextBox1.Text <> "" Then
TextBox1.Text = TextBox1.Text & Chr(9) & resultadoSQL.GetName(i)
Else
TextBox1.Text = resultadoSQL.GetName(i)
End If
Next i

While resultadoSQL.Read
TextBox1.Text = TextBox1.Text & Chr(13) & Chr(10)
For i = 0 To resultadoSQL.FieldCount - 1
If i = 0 Then
TextBox1.Text = TextBox1.Text & resultadoSQL(i).ToString
Else
TextBox1.Text = TextBox1.Text & Chr(9) & resultadoSQL(i).ToString
End If
Next i
End While

Si necesitas todo el código lo puedo enviar completo. Gracias y saludos.

Creo que seria muchisimo mas facil usar Un DataGridView o un ListView que te maneja directamente la tabla y podrias controlar mejor las filas. . .
En un textbox nunca he exo algo parecido a lo que tu kieres hacer. . . pero se me ocurre hacer esto. . .

Código:
'Cuando se da doble click se selecciona parte del texto en el campo de texto

Dim Cadena As String'Contendra el texto seleccionado cuando se de dble click
        Dim Part As String()'arreglo que contendra cada linea del textbox
        Dim Linea As Integer = 0'mostrara que linea se dio doble click
        Cadena = Mid(TextBox1.Text, TextBox1.SelectionStart + 1, TextBox1.SelectionLength)
        Part = Split(TextBox1.Text, vbNewLine)'divide la cadena
        For x As Integer = 0 To Part.Length - 1
            If InStr(Part(x), Cadena) > 0 Then' busca lo seleccionado en alguna linea
                Linea = x + 1
                Exit For
            End If
        Next
        MsgBox(Linea)
Te explico un poco el codigo. . .

Si en tu textbox tienes

Hola
Como
Estas


y le das doble click sobre el texto 'Como'. . . se sombreara esa parte entonces puedo saber que esta sombreado. . . que seria el texto "Como" luego
meto en un arreglo todas las lineas porque tan separados de vbNewline
cadena(0) =Hola'Representaria a la linea1
Cadena(1) = Como 'Representaria a la linea2
cadena(2) = Estas 'Representaria a la linea3

Ahora la cadena sombreada la busco en cada uno de las pociciones del arreglo si se encuentra ahi entonces muestro la pocision del arreglo mas uno que seria el numero de linea. . .


Bueno espero no haberte revolvido y haber sido claro :S jejeje cualkier cosa que no quedo claro con gusto vuelvo a explicarlo. . .
Aunq te recomiendo que uses el datagridview jejej

Saludos
  #5 (permalink)  
Antiguo 21/02/2011, 07:18
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Determinar línea clickeada en TextBox

Funcionó perfectamente!! (el único detallito a corregir en el código es la declaración de Part como Array en lugar de String).

De todas maneras voy a seguir tu consejo en cuanto a tratar de hacerlo con DataGridView o ListView...

Muchas gracias por tu ayuda CHOSS!!
  #6 (permalink)  
Antiguo 21/02/2011, 17:10
 
Fecha de Ingreso: abril-2010
Mensajes: 66
Antigüedad: 14 años
Puntos: 4
Respuesta: Determinar línea clickeada en TextBox

Cita:
Iniciado por lennox Ver Mensaje
Funcionó perfectamente!! (el único detallito a corregir en el código es la declaración de Part como Array en lugar de String).

De todas maneras voy a seguir tu consejo en cuanto a tratar de hacerlo con DataGridView o ListView...

Muchas gracias por tu ayuda CHOSS!!

De nada gusto saber que te funciono. . . .
y pzzz lo del arreglo si esta definido como un arreglo
dim part as string() . . . los parentesis del final dicen que es arreglo

aunq se deberia poner dim part() as string

Saludos. . .
  #7 (permalink)  
Antiguo 22/02/2011, 08:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Determinar línea clickeada en TextBox

Tienes razón, poniendo los paréntesis también funciona... al final lo he dejado con TextBox ya que encaja bien con lo que estoy haciendo... gracias de nuevo!

Etiquetas: determinar, textbox
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 07:45.