Fenetre bloquée par un click

Résolu
kkto Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 15 avril 2008 - 14 avril 2008 à 11:40
kkto Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 15 avril 2008 - 15 avril 2008 à 10:38
bonjour,

mon probleme : j'ai un form qui s'affiche et qui lance un événement à une heure donnée.
si je ckick sur le form, il devient occupé et le visuel est bloqué
quel code mettre pour éviter ça ?

voici mon code dans le sub load
Form1.WindowState = FormWindowState.Minimized        ' minimise le premier form

Refus.Close()                                                                              ' ferme le form précédent

Me.Show()                                                                                   ' rend le form en cour visible

merci d'avance

4 réponses

NHenry Messages postés 15001 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 6 octobre 2022 158
14 avril 2008 à 15:45
Bonjour

HORREUR ET DAMNATION : un GOTO dans un code VB.NET

horaire:

heure = System.DateTime.Now.Hour

minute = System.DateTime.Now.Minute

heure.ToString()

If heure = 18
And minute = 0
ThenOrdre2.Show()

Else :
GoTo horaire
EndIf

En clair tu attends qu'il soit 18h pile pour sortir de ta boucle, c'est très risqué, en plus, tu attends cette heure avant d'afficher la fenêtre, donc tu bloque tout ton programme j'usqu'à 18h00.

Le plus propre dans ce cas, ce serait d'utiliser un Timer (mettre Me.Hide au démarrage du formulaire).

Si je reprend ton code :
do Until now.ToString("HH:mm")="18:00"
    DoEvents
    Threading.Thread.Sleep(10)
Loop
Ordre2.Show

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
3
kkto Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 15 avril 2008
14 avril 2008 à 11:51
j ai oublié de préciser : je suis en vb 2005
0
kkto Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 15 avril 2008
14 avril 2008 à 13:30
je continue à chercher et il semblerait que le probleme vienne de ma boucle, donc voici mon code en entier :

Public

Class Ordre1

Dim heure
As
Integer

Dim minute
As
Integer

Dim son
As
New System.Media.SoundPlayer

Private
Sub Ordre1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.LoadForm1.WindowState = FormWindowState.Minimized

Refus.Close()

Me.Show()son.SoundLocation =

"c:\actions\sons\ordre.wav"son.Play()

horaire:

heure = System.DateTime.Now.Hour

minute = System.DateTime.Now.Minute

heure.ToString()

If heure = 18
And minute = 0
ThenOrdre2.Show()

Else :
GoTo horaire

End
If

End
SubEnd

Class
est ce qu'un doevents aiderait ? mais comment l'utiliser ?
0
kkto Messages postés 11 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 15 avril 2008
15 avril 2008 à 10:38
merci beaucoup de ton aide

c'est all good
0