Visual Basic.NET - Mostrar texto en Formulario sin Label o TextBox, solo en formulario

 
Vista:

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Miguel (5 intervenciones) el 01/10/2015 14:31:36
Tengo un Formulario y un botón de comando y en Visual Basic 6 escribía dentro del botón

Dim Suma As Integer
Suma = 5 + 15
Print ("La suma es = ", Suma)

y en el Formulario aparecía el texto escrito y el resultado de la suma, sin necesidad de usar un Label o un TextBox. Si volvía a escribir otra línea Print pues debajo y es lo que necesito para mi programa, porque quiero mostrar como 10 operaciones una debajo de otra y no quiero poner 10 TextBox, sino realizarlo con un For..Next como antes hacía, ya que van a ser un total de 8 listados de 10, eso me supone 80 TextBox y no creo que sea un programa correcto (estoy utilizando Formularios MDI).

Asi que lo que quiero es simple en Visual Basic 2013, al pulsar un botón que me aparezca en el Formulario principal o bien formulario secundario del MDI, el texto que ponga y la operación (variable). He mirado por internet y dicen utilizar método DrawString pero es bastante lioso y no funcionan los ejemplos (me dan error). Si hay alguna manera fácil o bien un ejemplo con DrawString declarándolo y que funcione para Visual Basic 2013 con el Botón y Formulario solamente; si hay que añadir algo más.

Muchas gracias y espero una solución de algo tan sencillo con VB6 ahora tan complicado con VB2013.
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
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por giancarlo (488 intervenciones) el 01/10/2015 19:56:06
y como haces para que el boton reconozca el operador y numeros que pones en el textbox?
Si llegaste a hacerlo, te recomiendo poner un labe, obviamente como oculto o con la propiedad .text="", de tal manera nunca te mostrar un valor y sera como si no hubiera algun control

para lo que quieres hacer, solamente seria concatenarlo, algo asi
label1.text &= vbnewline & textbox.text & "=" & suma
o
label1.text = textbox.text & "=" & suma & vbnewline & label1.text

no te olvides de poner como haces para que reconozca la operacion en el textnox(por ejemplo la suma)
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

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Miguel (1 intervención) el 01/10/2015 22:27:00
Buenas no es la solución que quiero puesto que el resultado quiero mostrarlo en el Formulario como se hacía antes con el método Print, por ponerte el código en Vb2013 que no quiero que sea así, puesto que al final solo muestra un solo resultado, el 10.

1
2
3
4
5
6
7
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Suma As Integer = 10
        Dim A As Integer
        For A = 1 To 10
            Label1.Text = ("Numero de Operación = " & A.ToString)
        Next A
 End Sub


Con VB6 ponías la linea "Print("Numero de Operación = ", A) y tenias las 10 lineas con distintos resultados cada uno. Diréis emplea un Array, pero no quiero variables, son listados de texto donde cambia unos números pero que no los voy a emplear para nada, solo de consulta y abriré 8 Formularios aprox dentro del MDI, y por tanto no necesito crear Etiquetas, TextBox... es un listado como si lo imprimes en papel, pero en el Formulario.

He estado mirando y creo que al final tendré que usar el método Drawing que es bastante lioso y para hacer una simple operación tengo que estar declarando varias cosas y en vez de 1 línea por lo menos seran varias, que puede que quede más bonito por emplear fuentes, pero que no le veo una utilidad rápida antes problemas sencillos, al igual que pasa por ejemplo con los arrays de controles que ahora lo tienes que declarar todo y hacerlo mediante código y muchas líneas de programar cuando antes cambiando la propiedad Index ya tenias un mismo nombre con un identificador que al pulsar sobre uno, tenías el procedimiento para todos.

Intentare ver si consigo con Drawing y pondré código, si alguien sabe de otra forma más fácil se lo agradezco.
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
sin imagen de perfil

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por David (45 intervenciones) el 01/10/2015 23:18:00
¿Y por qué no usas un TextBox configurado con multilinea y de solo lectura, y lo vas rellenando con el texto de las sumas más vbCr? Seria como una especie de bloc de notas, pero solo para leer. Tambien te gestionaria automáticamente el scroll.
Te quitarías el tener que usar el drawing
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
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por giancarlo (488 intervenciones) el 02/10/2015 00:09:41
Creo que no probaste el código, en fin
abel1.text &= vbnewline & textbox.text & "=" & suma
o
label1.text = textbox.text & "=" & suma & vbnewline & label1.text


Cuando se pone el simbolo & es para concatenar, es decir puedes poner cualquier otro texto, el comando vbNewLine agregas un salto de linea, es como presionar enter.

Colo tendrias que concatenar, recuerda usar el label,
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

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Miguel (5 intervenciones) el 02/10/2015 09:08:21
Tu código Giancarlo

1
2
3
4
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Suma As Integer = 10
        TextBox1.Text = Label1.Text & "=" & Suma & vbNewLine & Label1.Text
 End Sub

Lo he probado y estaría bien si solo utilizo un Formulario, pero al utilizar varios Formularios MDI con un mismo código para abrir, tendría que emplear construir un label y un textbox mediante código y el problema que se presenta es que cuando abres otro formulario MDI lo que asigne al TextBox pasa al otro y se borra del anterior quedando vacía la lista, luego si lo presento en Ventanas no aparece y solo el último, tendría que estar con condicionales if...then y al final el código es mucho más largo y enrevesado.

Pero lo apunto cuando utilice un solo Formulario, es bueno saber hacer una misma cosa con varias opciones. Naturalmente tengo que ocultar el label y el color del Textbox ponerlo igual que el formulario para que solo se vea el texto. Gracias por tu aportación, de momento voy más por DrawString, aunque podían haber dejado el método Print como antes donde se utilizaba la fuente, color... del Formulario donde se escribía.
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
Imágen de perfil de Krlos

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Krlos (37 intervenciones) el 02/10/2015 00:21:42
Si se puede imprimir en el mismo formulario usando el evento Paint del formulario...:

1
2
3
4
5
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
        Dim Suma As Integer
        Suma = 5 + 15
        e.Graphics.DrawString("La suma es = " & Suma, New Font("Arial", 12, FontStyle.Bold), Brushes.Black, New Point(10, 10))
End Sub

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

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Miguel (5 intervenciones) el 02/10/2015 08:30:37
Al usar Formularios MDI, voy a utilizar el mismo Formulario para abrir varios y asi solo utilizo un código, por eso no quiero poner Label, ni TextBox.. porque ya tengo que crear el control mediante Codigo y es más lioso, sino quiero emplear variables.

Yo lo he conseguido con DrawString y me queda así como ejemplo . Probare el código de arriba a ver si es más corto al abrir el Formulario secundario (no utilizaré botón) y se ejecute el evento Paint. MUCHAS GRACIAS A TODOS/AS, esto de adaptarse al VB2013 cuesta después de haber estado varios años programando en VB6, pero está claro que hay que renovarse.

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Contorno_Click(sender As Object, e As EventArgs) Handles Contorno.Click
        Dim Suma As Integer = 10
        Dim A As Integer
        Dim MiGrafico As Graphics = Me.CreateGraphics
        Dim MiFuente As Font
        Dim MiPincel As Brush
 
        MiPincel = New Drawing.SolidBrush(Color.Blue)
        MiFuente = New System.Drawing.Font("Tahoma", 12, FontStyle.Underline)
        For A = 0 To 9
            MiGrafico.DrawString("Operación " & Suma + A, MiFuente, MiPincel, 200, 10 + (A * 20))
        Next
End Sub
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

Mostrar texto en Formulario sin Label o TextBox, solo en formulario

Publicado por Miguel (5 intervenciones) el 02/10/2015 12:56:21
Efectivamente "krlos" tu código es el que voy a utilizar, más se asemeja al print y en una sola línea, he mirado que no se puede omitir la fuente, el tipo, etc y que pille las propiedades del Formulario.

1
2
3
4
5
6
7
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
        Dim Suma As Integer = 15
        Dim A As Integer
        For A = 0 To 9
            e.Graphics.DrawString("La suma es = " & Suma + A, New Font("Tahoma", 12, FontStyle.Bold), Brushes.Black, New Point(50, 10 + (A * 20)))
        Next A
End Sub

Respecto al que he puesto queda más claro para las declaraciones y no en una sola línea. Pero yo lo que quiero es que según abre el Formulario aparezca el listado y justo es el evento Paint el que necesito. MUCHAS 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