Buscar..


Hola Mundo en Formas VB.NET

Para mostrar un cuadro de mensaje cuando se ha mostrado el formulario:

Public Class Form1
    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
        MessageBox.Show("Hello, World!")
    End Sub
End Class
To show a message box before the form has been shown:

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MessageBox.Show("Hello, World!")
    End Sub
End Class

Load () se llamará primero, y solo una vez, cuando se carga el formulario por primera vez. Se llamará a Show () cada vez que el usuario inicie el formulario. Activate () se llamará cada vez que el usuario active el formulario.

Load () se ejecutará antes de llamar a Show (), pero tenga cuidado: llamar a msgBox () en show puede hacer que se ejecute msgBox () antes de que finalice Load (). En general, es una mala idea depender del orden de los eventos entre Load (), Show () y similares.

Para principiantes

Algunas cosas que todos los principiantes deben saber / hacer que les ayudarán a tener un buen comienzo con VB .Net:

Establece las siguientes opciones:

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

End Class

Utilice &, no + para la concatenación de cadenas. Las cuerdas deben estudiarse con cierto detalle ya que son ampliamente utilizadas.

Dedica algo de tiempo a entender los tipos de valor y referencia .

Nunca utilice Application.DoEvents . Preste atención a la 'Precaución'. Cuando llegue a un punto en el que esto parezca algo que debe usar, pregunte.

La documentación es tu amiga.

Temporizador de formularios

El componente Windows.Forms.Timer se puede usar para proporcionar información de usuario que no es crítica en el tiempo. Cree un formulario con un botón, una etiqueta y un componente de temporizador.

Por ejemplo, podría utilizarse para mostrar al usuario la hora del día periódicamente.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        Timer1.Interval = 60 * 1000 'one minute intervals
        'start timer
        Timer1.Start()
        Label1.Text = DateTime.Now.ToLongTimeString
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = DateTime.Now.ToLongTimeString
    End Sub
End Class

Pero este temporizador no es adecuado para la temporización. Un ejemplo lo estaría usando para una cuenta atrás. En este ejemplo simularemos una cuenta regresiva a tres minutos. Este puede muy bien ser uno de los ejemplos más aburridos importantes aquí.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        ctSecs = 0 'clear count
        Timer1.Interval = 1000 'one second in ms.
        'start timers
        stpw.Reset()
        stpw.Start()
        Timer1.Start()
    End Sub

    Dim stpw As New Stopwatch
    Dim ctSecs As Integer

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        ctSecs += 1
        If ctSecs = 180 Then 'about 2.5 seconds off on my PC!
            'stop timing
            stpw.Stop()
            Timer1.Stop()
            'show actual elapsed time
            'Is it near 180?
            Label1.Text = stpw.Elapsed.TotalSeconds.ToString("n1")
        End If
    End Sub
End Class

Después de hacer clic en el botón 1, pasan aproximadamente tres minutos y label1 muestra los resultados. ¿Label1 muestra 180? Probablemente no. ¡En mi máquina mostraba 182.5!

El motivo de la discrepancia se encuentra en la documentación, "El componente de Windows Forms Timer es de un solo hilo y está limitado a una precisión de 55 milisegundos". Esta es la razón por la que no debe utilizarse para la sincronización.

Al usar el temporizador y el cronómetro de manera un poco diferente, podemos obtener mejores resultados.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        Timer1.Interval = 100 'one tenth of a second in ms.
        'start timers
        stpw.Reset()
        stpw.Start()
        Timer1.Start()
    End Sub

    Dim stpw As New Stopwatch
    Dim threeMinutes As TimeSpan = TimeSpan.FromMinutes(3)

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If stpw.Elapsed >= threeMinutes Then '0.1 off on my PC!
            'stop timing
            stpw.Stop()
            Timer1.Stop()
            'show actual elapsed time
            'how close?
            Label1.Text = stpw.Elapsed.TotalSeconds.ToString("n1")
        End If
    End Sub
End Class

Hay otros temporizadores que pueden usarse según sea necesario. Esta búsqueda debería ayudar en ese sentido.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow