.NET Framework
VB-formulieren
Zoeken…
Hallo wereld in VB.NET-formulieren
Een berichtvenster weergeven wanneer het formulier is weergegeven:
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 () wordt eerst en slechts eenmaal aangeroepen wanneer het formulier voor het eerst wordt geladen. Show () wordt elke keer aangeroepen wanneer de gebruiker het formulier start. Activate () wordt elke keer aangeroepen als de gebruiker het formulier actief maakt.
Load () wordt uitgevoerd voordat Show () wordt aangeroepen, maar wees gewaarschuwd: het aanroepen van msgBox () in show kan ertoe leiden dat msgBox () wordt uitgevoerd voordat Load () is voltooid. Het is over het algemeen een slecht idee om afhankelijk te zijn van de volgorde van gebeurtenissen tussen Load (), Show () en dergelijke.
Voor beginners
Sommige dingen die alle beginners moeten weten / doen die hen zullen helpen een goede start met VB .Net te hebben:
Stel de volgende opties in:
'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
Gebruik &, niet + voor tekenreeksen. Strings moeten enigszins gedetailleerd worden bestudeerd, omdat ze veel worden gebruikt.
Besteed wat tijd aan het begrijpen van waarde- en referentietypen .
Gebruik nooit Application.DoEvents . Besteed aandacht aan de 'Let op'. Vraag het wanneer u een punt bereikt waarop dit iets lijkt dat u moet gebruiken.
De documentatie is je vriend.
Formulieren Timer
De component Windows.Forms.Timer kan worden gebruikt om gebruikersinformatie te verschaffen die niet kritisch is voor de tijd. Maak een formulier met één knop, één label en een timercomponent.
Het kan bijvoorbeeld worden gebruikt om de gebruiker periodiek het tijdstip van de dag te tonen.
'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
Maar deze timer is niet geschikt voor timing. Een voorbeeld zou het gebruiken voor een aftelling. In dit voorbeeld simuleren we een aftelling tot drie minuten. Dit is misschien wel een van de meest saaiste voorbeelden hier.
'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
Nadat op knop 1 is geklikt, gaat er ongeveer drie minuten voorbij en geeft label1 de resultaten weer. Toont label1 180? Waarschijnlijk niet. Op mijn machine toonde het 182.5!
De reden voor het verschil is in de documentatie: "De Windows Forms Timer-component heeft één thread en is beperkt tot een nauwkeurigheid van 55 milliseconden." Daarom moet het niet worden gebruikt voor timing.
Door de timer en stopwatch een beetje anders te gebruiken, kunnen we betere resultaten verkrijgen.
'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
Er zijn andere timers die naar behoefte kunnen worden gebruikt. Deze zoektocht zou in dat opzicht moeten helpen.