Visual Basic.NET - Simular papel calculadora

   
Vista:

Simular papel calculadora

Publicado por fausfe (5 intervenciones) el 23/01/2015 12:30:01
Hola!!
Estoy haciendo una calculadora en vb_net y quiero simular la tira de papel mediante un textbox multiline con scroll vertical.
El tema es que quisiera ir entrando datos y que estos aparecieran en la parte baja del textbox (ultima línea) y cada dato añadido fuera por debajo de este , desplazando hacia arriba los anteriores..
No sé si hay alguna instrucciones que actúe directamente sobre el textbox o habrá que inventarlo?
He leído algo parecido a esto pero a mi no me da ningún resultado, es decir, siempre escribe en la primera línea.

txtpapel.SelectionStart = Len(txtpapel.Text)

Cualquier idea será bienvenida.
Gracias anticipadas y deciros que aunque soy nuevo en esto de la programación estoy disfrutando leyendo vuestras anteriores publicaciones.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Simular papel calculadora

Publicado por Miguel (352 intervenciones) el 23/01/2015 16:15:09
Hola, no te he entendido correctamente; deseas insertar datos en la última línea del textBox multiline o desplazar hasta abajo la vista/foco del textbox (scrollbar)?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Ricardo (5 intervenciones) el 23/01/2015 19:09:50
Hola Miguel:
Sí, lo que quiero conseguir es escribir cada vez en la ultima línea del textbox y desplazar los datos anteriores hacia arriba, tal como se haría en una tira de papel de calculadora.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Miguel (352 intervenciones) el 23/01/2015 20:15:49
Bueno, yo creo que deberías usar dos controles textBox; uno con scrollBar y otro "normal", luego solamente obtienes los datos del textBox "normal", obtienes los datos del textBox con scrollBar, los ordenas a tu conveniencia y se los pasas al textBox que tiene el scrollBar. Quizás podría ayudarte si pudiera ver el diseño de tu form (screenShot/captura) o alguna ilustración....

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Ricardo (5 intervenciones) el 25/01/2015 21:09:11
Hola Miguel. Gracias por responder.
Mas o menos es así como lo tengo. En un textbox sin scroll( llamado txtpantalla) se van introduciendo los números con los que voy a calcular, por ejemplo una suma y cuando le doy al segundo sumando quiero que aparezca debajo del primer sumando en (txtpapel) que es el textbox con scroll
He captado la idea de lo que me dices, pero no sé como hacer una copia del textbox con scroll y luego ordenarlo?
Ahora siempre que pulso un numero o comando, siempre aparece en la primera línea superior derecha del textbox con scroll.
Te adjunto una copia de la pantalla de la calculadora para que te hagas una idea.
Gracias de nuevo.
calculadoraVBNet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Miguel (352 intervenciones) el 26/01/2015 03:18:59
Hola,
Si entendí, la solución es bastante sencilla como ésto:

1
2
3
4
5
6
Private Sub mostrarResultados()
     Dim historialDatos As String = txtpapel.Text
     Dim nuevosDatos As String = txtpantalla.Text
     Dim resultado As String = historialDatos & vbCrLf & nuevosDatos
     txtpapel.Text = resultado
End Sub


No lo he probado pero creo que funcionará...

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Ricardo (5 intervenciones) el 26/01/2015 20:16:01
Hola Miguel.
He comprobado el código y funciona bien, excepto de que el scroll se queda arriba (bueno no sé como mirarlo). los importes introducidos no están a la vista, hay que hacer manualmente scroll hacia abajo para que se vean.
En el ejemplo que aporta Horroroso sí sale perfectamente, porque se hace el scroll automáticamente y cada numero introducido se queda por debajo, en la ultima línea, tal como quería.
Entiendo que lo que cambia está en la propiedad AppendText
Así es que, muchas gracias por las aportaciones. Cada día vamos aprendiendo alguna cosa mas.
Saludos y hasta la próxima.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Simular papel calculadora

Publicado por Horroroso horroroso@hotmail.com (46 intervenciones) el 26/01/2015 19:31:48
Te paso el codigo que puedes utilizar para que el scroll se mueva hasta el final,
Tambien te paso el codigo por si tienes un ListBox en lugar de un Text box,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        'txtScroll es el textbox donde se guarda el scroll
        If txtScroll.Text = "" Then
            txtScroll.AppendText(txtDato.Text)
        Else
            txtScroll.AppendText(vbCrLf & txtDato.Text)
        End If
 
        'ListScroll es un listbox donde se guarda el scroll
        ListScroll.Items.Add(txtDato.Text)
        ListScroll.SelectedIndex = ListScroll.Items.Count - 1
        ListScroll.SetSelected(ListScroll.Items.Count - 1, False)
 
    End Sub

Por favor responde si esto te sirvio.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Simular papel calculadora

Publicado por Ricardo (5 intervenciones) el 26/01/2015 20:22:35
Horroroso, muchísimas gracias por tu aportación , es exactamente lo que estaba buscando.
He utilizado el txtbox, multiline con scroll.
Un abrazo y hasta la próxima.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar