Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/02/2011, 23:35
CHOSS
 
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