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

Leer MultiLine TextBox línea a línea - ¿Cómo?

Estas en el tema de Leer MultiLine TextBox línea a línea - ¿Cómo? en el foro de .NET en Foros del Web. Hola, Estoy haciendo un programa y en dicho programa necesito que al hacer click en un botón, comience a leer un MultiLine y por cada ...
  #1 (permalink)  
Antiguo 25/11/2011, 05:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Pregunta Leer MultiLine TextBox línea a línea - ¿Cómo?

Hola,

Estoy haciendo un programa y en dicho programa necesito que al hacer click en un botón, comience a leer un MultiLine y por cada línea ejecute la acción correspondiente a ese botón. Es un botón un poco rebuscado, y así es el código:

Código vb:
Ver original
  1. Private Sub GetDatesBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetDatesBtn.Click
  2.  
  3.         Dim allelements1 As HtmlElementCollection = WebBrowser1.Document.All
  4.         Dim PageElements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
  5.  
  6.         WebBrowser1.Document.GetElementById("mat").SetAttribute("value", Matnumb.Text)
  7.         For Each webpageelement1 As HtmlElement In allelements1
  8.             If webpageelement1.GetAttribute("value") = "Datar" Then
  9.                 webpageelement1.InvokeMember("click")
  10.             End If
  11.         Next
  12.  
  13.         For Each CurElement As HtmlElement In PageElements
  14.             Dim GetDate As String = CurElement.GetAttribute("id")
  15.             If GetDate.Contains("datacion") = True Then
  16.                 Dim innerText As String = CurElement.InnerHtml
  17.                 'MessageBox.Show("Fecha:" & innerText)
  18.                TextBox3.Text = TextBox3.Text & Environment.NewLine & innerText
  19.             End If
  20.         Next
  21. End Sub

Lo que hace el botón creo que no influye, el problema es que no sé cómo si en el MultiLine tengo 4 líneas, leer una a una metiéndola en el otro TextBox y ejecutando la acción del botón. Estoy automatizando, por así decirlo.


A ver si alguien sabe... Muchas gracias,

Un saludo.
  #2 (permalink)  
Antiguo 25/11/2011, 07:30
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

y porque en vez de usar un texbox multiline mejor usas un ListBox? asi vas sacando
cada item del listbox y lo vas metiendo en el texbox que mencionas?


textbox.text = listbox.selectedValue;

espero te sirva!
saludos
  #3 (permalink)  
Antiguo 28/11/2011, 06:32
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

La verdad que es una buena idea. Tengo que probarla. Os digo algo.

¡Muchas gracias!
  #4 (permalink)  
Antiguo 28/11/2011, 07:32
Avatar de dolorosaclaridad  
Fecha de Ingreso: noviembre-2011
Mensajes: 45
Antigüedad: 13 años
Puntos: 1
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

No hay problema, me cuentas como te fue, o si necesitas alguna otra ayudita, saludos
  #5 (permalink)  
Antiguo 28/11/2011, 13:30
Avatar de bieres  
Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

Hola pep0te, puedes usar el API de windows para leer las lineas de un textBox.

Código:
        [DllImport("user32.dll")]
        public static extern int SendMessage(
              IntPtr hWnd,      // handle to destination window
              uint Msg,       // message
              long wParam,  // first message parameter
              long lParam   // second message parameter
              );

        static internal string[] Multilinea()
        {
            const uint EM_GETLINECOUNT = 0XBA;
            const uint EM_LINELENGTH = 0XC1;
            const uint EM_LINEINDEX = 0XBB;
            int i, k, L1, L2;
            k = SendMessage(mTextbox.Handle, EM_GETLINECOUNT, 0, 0L);
            string[] salida = new string[k];
            for (i = 0; i <= k - 1; i++)
            {
                try
                {
                    L1 = SendMessage(mTextbox.Handle, EM_LINEINDEX, i, 0L);
                    L2 = SendMessage(mTextbox.Handle, EM_LINELENGTH, L1, 0L);
                    salida[i] = mTextbox.Text.Substring(L1, L2);
                }
                catch{}
            }
            return salida;
        }
__________________
http://medprest.com
  #6 (permalink)  
Antiguo 29/11/2011, 02:19
 
Fecha de Ingreso: noviembre-2011
Ubicación: Mexico
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

Prueba con esto
solo saca lo que contega las lineas de tu codigo luego ya llamas a los procedimientos correctos

Código C#:
Ver original
  1. string linea;//Renglon a enviar
  2.            string texto1 = textBox1.Text +" " + Convert.ToString(Convert.ToChar(10));//valor del textbox + un enter
  3.            int jojojito=0;//numero de linea
  4.            
  5.            for (int j = 0; j < texto1.Length; j++)
  6.                 {
  7.                     if (texto1[j] == Convert.ToChar(10))//compara donde esta el Enter
  8.                     {
  9.                         jojojito = jojojito + 1;//linea =0+1,1+2,2+1,3+1,etc+1
  10.                         linea = texto1.Substring(0, j-1);
  11.                         //toma el primer renglon antes del primer enter
  12.                
  13.                         texto1 = texto1.Remove(0, j + 1);//Elimina el renglon usado del texto
  14.                         j = 0;//reiniciamos el FOR para poder encotrar mas enters
  15.                        }
  16.                 }
espero y te sriva
PD soy nuevo en esto y casi no le se asi ke suerte
  #7 (permalink)  
Antiguo 29/11/2011, 06:41
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

@bieres: Me temo que no entiendo muy bien ese código, pero estoy programando en .net entonces entiendo que eso no me serviría (a no ser que puedas explicarme cómo :]), aunque tiene buena pinta xD

@AIQ1516: Tu código sí que lo entiendo, pero claro, es C#. Estamos en las mismas xDD

@joelcastillo/dolorosaclaridad: En cuanto tenga un rato lo miro :)


Muchas gracias a los todos!!
  #8 (permalink)  
Antiguo 29/11/2011, 07:34
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

Cita:
@AIQ1516: Tu código sí que lo entiendo, pero claro, es C#. Estamos en las mismas xDD
Hola pep0te, puedes pasar codigo de c# a VB.Net, te paso uno de los convertores que puedes encontrar en la web :
c# - > VB.NET. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 29/11/2011, 11:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

¡Wow! ¿Y convierte perfectamente? Muchas gracias!

He probado el tema del listbox, y ya consigo recorrerlo y leerlo, pero tengo otro problema. Al hacer click en el botón, éste ejecuta una función en javascript, y durante está ejecutándose esa función, una imagen aparece justo antes del resultado entonces el valor que yo quiero recoger (el que devuelve el botón) no es el correcto puesto que recojo el enlace de la imagen. ¿Se os ocurre algo para esto? Ejecutando la función de recoger el valor desde otro botón sí que es posible, de hecho así lo tengo ahora, pero tengo que ir haciendo click en el listbox, si no nada. Quiero que lo recorra automáticamentey guarde el valor que obtiene al ejecutar el botón, en cada caso.

Muchas gracias a todos, cracks.

Un saludo.
  #10 (permalink)  
Antiguo 30/11/2011, 16:41
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

¿Nadie sabría decirme? ¿Se le ocurre alguna idea y yo busco un desarrollo, o al menos lo intento?

Gracias!!
  #11 (permalink)  
Antiguo 14/12/2011, 13:39
Avatar de dolorosaclaridad  
Fecha de Ingreso: noviembre-2011
Mensajes: 45
Antigüedad: 13 años
Puntos: 1
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

podria ser devolviento el control al listbox cada vez que presionas el boton


public void DoFocus(Control miControl)
{
ScriptManager scm = ScriptManager.GetCurrent(Page);
scm.SetFocus(miControl);
}

entones despues de presionar al boton, en el evento del boton, pones

Dofocus(miListbox)

asi devuelve el control al listbox, espero te sirva


Cita:
Iniciado por pep0te Ver Mensaje
¿Nadie sabría decirme? ¿Se le ocurre alguna idea y yo busco un desarrollo, o al menos lo intento?

Gracias!!
  #12 (permalink)  
Antiguo 14/12/2011, 13:40
Avatar de dolorosaclaridad  
Fecha de Ingreso: noviembre-2011
Mensajes: 45
Antigüedad: 13 años
Puntos: 1
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

los convertidores de codigo sirven en alguno casos, pero para otros no, solo intenta usarlo
con una linea de codigo o cosas asi, no con formularios completos. Solo un consejo !
saludos
  #13 (permalink)  
Antiguo 19/12/2011, 05:24
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

He escrito este post:

http://www.forosdelweb.com/f29/esper...alores-965128/

Ya que este estaba un poco anticuado. He probado a pasar el foco al hacer click en el botón pero la verdad es que pasa un poco de mí, tampoco es la solución, yo creo. Si puedes leer el nuevo post en el que está más explicado, quizá así podamos sacar algo en claro :)

Un saludo
  #14 (permalink)  
Antiguo 20/07/2013, 13:36
 
Fecha de Ingreso: julio-2013
Mensajes: 6
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Leer MultiLine TextBox línea a línea - ¿Cómo?

Me ayudo mucho en un problema que tenia en visual basic

Etiquetas: 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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 05:13.