Ajouter un appel à Application.EnableVisualStyles dans votre code avant la création de tout contrôle
Mettez la propriété Flat de tous les contrôles Winform qui en possèdent une à System
'Soit dans le constructeur de la form principale de votre projet PublicSubNew()
MyBase.New()
'Style Win XP
Application.EnableVisualStyles()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent() EndSub'Soit dans la fonction Main de démarrage de votre projet SharedSub Main()
'Style Win XP
Application.EnableVisualStyles()
Application.Run(New Form1)
EndSub
Lors de la réalisation d'applications, il peut être utile de montrer à l'utilisateur que le traitement demandé est en cours (et qu'il faut patienter).
Un bon moyen de réaliser ceci est de changer la forme du curseur, pendant la durée du traitement.
Pour ce faire, vous devez utiliser la Classe Cursors.
'Fonction du code d'un bouton de notre FormPrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
' On passe le curseur en sablier
Cursor = Cursors.WaitCursor
' On affiche une boite de dialogue
MessageBox.Show("Le curseur est maintenant un sablier")
' On repasse le curseur en normal
Cursor = Cursors.Arrow
EndSub
N'hésiter pas à vous reporter à la classe Cursors pour voir les type de curseurs disponibles et utilisables par votre applications.
Le composant System.Windows.Form.OpenFileDialog permet à l'utilisateur de choisir intercativement un fichier afin d'y lire des données.
Créez une form et placez-y un bouton nommé button2, un composant RichTextBox nommé richTextBox1 et un composant OpenFileDialog
nommé openFileDialog1
Un clic sur le bouton2 permet de lire le fichier choisi et d'afficher son contenu dans le RichTextBox
PrivateSub Button2_Click1(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button2.Click
'Titre
OpenFileDialog1.Title = "Chargement"'Extension par défaut
OpenFileDialog1.DefaultExt = "txt"'Filtres
OpenFileDialog1.Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
'Ouverture boite de dialogue OpenFileIf OpenFileDialog1.ShowDialog(Me) = DialogResult.OK Then'On vide le TextBox
RichTextBox1.Text = String.Empty
'Ouverture du fichier sélectionné'son nom est dans openFileDialog1.FileNameDim sr As StreamReader = New StreamReader(OpenFileDialog1.OpenFile, Encoding.Default)
TryDim data AsString = sr.ReadLine
WhileNot (data IsNothing)
RichTextBox1.AppendText(data + _
Convert.ToChar(13) + _
Convert.ToChar(10))
data = sr.ReadLine()
EndWhileFinallyIfNot (sr IsNothing) Then
sr.Close()
EndIfEndTryEndIfEndSub
Le composant System.Windows.Form.SaveFileDialog permet à l'utilisateur de choisir interactivement un fichier afin d'y écrire des données.
Créez une form et placez-y un bouton nommé button1, un composant RichTextBox nommé richTextBox1 et un composant SaveFileDialog
nommé saveFileDialog1
Un clic sur le bouton1 permet de sauvegarder le contenu du RichTextBox vers le fichier choisi.
PrivateSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button1.Click
If MessageBox.Show(Me, _
"Sauvegarder le document?", _
"Sauvegarde", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = DialogResult.No ThenReturnEndIf'Titre
SaveFileDialog1.Title = "Sauvegarde"'Extension par défaut
SaveFileDialog1.DefaultExt = "txt"'Filtres
SaveFileDialog1.Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"
SaveFileDialog1.FilterIndex = 1
'Ouverture boite de dialogue saveFileIf SaveFileDialog1.ShowDialog(Me) = DialogResult.OK ThenDim sw As StreamWriter = New StreamWriter(SaveFileDialog1.OpenFile, Encoding.Default)
TryDim i AsInteger = 0
While i < RichTextBox1.Lines.Length
sw.WriteLine(RichTextBox1.Lines(i))
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
EndWhileFinallyIfNot (sw IsNothing) Then
sw.Close()
EndIfEndTryEndIfEndSub
Il faut pour cela insérer ce petit bout de code dans notre classe, ce qui permet de
détecter une tentative de fermeture de session et de l'annuler :
'Message Windows QueryEndSessionPrivateConst WM_QUERYENDSESSION AsInteger= &H11;
'flag indiquant si la session est en cours de fermeturePrivate _systemShutdown AsBoolean= false;
'Redéfinition de la fonction virtuelle WndProcProtectedOverridesSub WndProc(ByRef m As System.Windows.Forms.Message)
'Mise dans systemShutdown la présence du message fermeture WindowsIf m.Msg = WM_QUERYENDSESSION Then
_systemShutdown = true
base.WndProc(m)
EndIfEndSub'Handler evenement closingPrivateSub Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) Handles Form1.Closing
'Si le message fermeture Windows a été envoyé, on l'annule !If _systemShutdown Then
e.Cancel = true
_systemShutdown = false
MessageBox.Show("Fermeture de session windows annulée")
EndIfEndSub