Buenas, llevo unos meses aprendiendo Visual Basic 2013 puesto que era de al antigua escuela de Visual Basic 6 y llevaba años sin programar. Prácticamente estoy recopilando conocimientos y pasando al nuevo VB 2013 porque el código cambia mucho y una de las cosas que con más facilidad hacía con Visual Basic 6 era.
Tenía un Formulario y un botón de comando y 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, 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.
Escribo código para haceros ver una idea de lo que quiero.
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
Naturalmente el resultado dará una sola línea, quiero como antes con el método Print que daría 10 líneas y puestas en el Formulario. No quiero Label, ni TextBox, ni emplear Arrays porque no voy a usar variables, son varios listados como si fuera en papel pero mostarlo en el Formulario.
Estoy mirando y creo que tendré que usar el método Drawing que es bastante lioso y para una cosa sencilla tienes que programar varias lineas declarando, quedará más bonito con las fuentes y demás, pero no le veo la práctica de antes a cosas sencillas.
Sigo mirando y si lo consigo lo expongo aqui, pero si alguién sabe una respuesta más acorde con lo que pido se lo agradezco.
De momento he encontrado una solución y lo tengo resuelto mediante el método Drawing, aunque si alguien conoce alguna otra forma parecida a Print del VB6, porque antes con 2 líneas hacias lo mismo que este código.
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
perdón, la verdad no conozco algún método para lo que buscas, pero, no querés usar varios textbox, está bien, y ¿un listbox?, después te permite otros métodos y propiedades que el form te costará más.
Al final utilizaré este código y con el evento Paint, es lo que más se asemeja al print de antes. No utilizo etiquetas, ni label puesto que voy a utilizar Formularios MDI y tendría que estar realizando más código y no por diseño, además de que solo van a ser listas al igual que si imprimes. Si fuera un solo Formulario si lo haría.
[code=vbnet]
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
[/code]
Esta es la SOLUCIÓN que veo. Gracias a todos y al foro.