.NET Framework
Formulaires VB
Recherche…
Bonjour tout le monde dans les formulaires VB.NET
Pour afficher une boîte de message lorsque le formulaire a été affiché:
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 () sera appelée en premier, et une seule fois, lors du premier chargement du formulaire. Show () sera appelé à chaque fois que l'utilisateur lance le formulaire. Activate () sera appelé chaque fois que l'utilisateur active le formulaire.
Load () s'exécutera avant l'appel de Show (), mais soyez averti: l'appel de msgBox () dans show peut entraîner l'exécution de msgBox () avant la fin de Load (). C'est généralement une mauvaise idée de dépendre de l'ordre des événements entre Load (), Show () et similaire.
Pour les débutants
Certaines choses que tous les débutants doivent savoir / faire pour les aider à bien démarrer avec VB .Net:
Définissez les options suivantes:
'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
Utilisez &, pas + pour la concaténation de chaînes. Les chaînes doivent être étudiées en détail car elles sont largement utilisées.
Passez du temps à comprendre les types de valeur et de référence .
N'utilisez jamais Application.DoEvents . Faites attention à la "Attention". Lorsque vous atteignez un point où cela semble être quelque chose que vous devez utiliser, demandez.
La documentation est votre ami.
Minuteur de Formulaires
Le composant Windows.Forms.Timer peut être utilisé pour fournir à l'utilisateur des informations qui ne sont pas critiques en termes de temps. Créez un formulaire avec un bouton, une étiquette et un composant Timer.
Par exemple, il pourrait être utilisé pour montrer à l'utilisateur l'heure de la journée périodiquement.
'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
Mais cette minuterie n'est pas adaptée au timing. Un exemple serait de l'utiliser pour un compte à rebours. Dans cet exemple, nous allons simuler un compte à rebours de trois minutes. Cela pourrait très bien être l'un des exemples les plus ennuyeux ici.
'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
Après avoir cliqué sur button1, environ trois minutes passent et label1 affiche les résultats. Est-ce que label1 montre 180? Probablement pas. Sur ma machine, il y avait 182,5!
La raison de cette différence se trouve dans la documentation, "Le composant Windows Forms Timer est à thread unique et sa précision est limitée à 55 millisecondes." C'est pourquoi il ne faut pas l'utiliser pour le chronométrage.
En utilisant un peu le chronomètre et le chronomètre, nous pouvons obtenir de meilleurs résultats.
'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
Il existe d'autres minuteries qui peuvent être utilisées selon les besoins. Cette recherche devrait aider à cet égard.