IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

rendre la croix rouge (fermer) d'une form enabled=false pendant l'execution d'une tache


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut rendre la croix rouge (fermer) d'une form enabled=false pendant l'execution d'une tache
    Bonsoir,

    je souhaite rendre enabled=false ou visible=false la croix rouge de ma form pendant l'exécution de certaine tache de mon application.

    celle-ci servant si besoin à compresser un fichier/dossier pour ensuite l'uploader je souhaite donc éviter la fermeture de mon application tant que le traitement n'est pas arriver à terme afin d'éviter les bug.

    si quelqu'un a une piste sachant que je devrai après le traitement rendre cette croix fonctionnelle ??

  2. #2
    Membre actif Avatar de lukeni2
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 92
    Points : 203
    Points
    203
    Par défaut
    Il n'est pas possible de desactive le bouton de fermeture pendant l'exécution du programme. Tu peut le desactiver en donnant à la propriété controlbox du form la valeur false dans la fenêtre des propriétés. Cela a pour conséquence de faire disparaitre le bouton de fermeture, reduction et restauration. Il faudra donc prevoir un autre moyen de fermeture pour la fenêtre concernée.

  3. #3
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut
    Bonsoir,
    merci de ta réponse.
    aurai-t-il alors un autre moyen non pas par les propriétés mais dans le code afin d'arriver à mes fin ?
    Ex: cacher à ce moment là le controlbox ou autre solution qui en reviendrai à ce que le programme ne puisse pas être fermer ?

  4. #4
    Membre actif Avatar de lukeni2
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 92
    Points : 203
    Points
    203
    Par défaut
    La solution que je peut vous proposer est de masquer le bouton de fermeture en donnant à la propriété controlbox du form la valeur false dans la fenêtre des propriété puis d'ajouter sur la feuille un bouton fermer qui pourra être activé ou desactivé avec
    ou

  5. #5
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 685
    Points : 1 959
    Points
    1 959
    Par défaut
    Plusieurs solutions :

    - tu affiches une petite fenetre en modal en disant que des actions sont en cours, puis tu auto-fermes cette meme quand fini.
    - tu peux choisir de ne pas afficher la barre d'info et de te creer toi meme un bouton fermer que tu affiches/effaces selon les besoins.
    - intercepter l'eventuel appuie sur la croix (ou voire alt-f4) et de controler si traitement lourd ou pas.

    il existe surement pleins d'autres moyen ... de moyenner

  6. #6
    Membre habitué Avatar de Niitaku
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2009
    Messages : 119
    Points : 173
    Points
    173
    Par défaut
    Il me semble que tu peux annuler la fermeture d'une fenêtre en utilisant l'EventArgs de l'évènement de fermeture de la fenêtre en faisant e.Cancel = true.

    Après, tu peux adapter cette solution, si elle fonctionne, en faisant les vérifications nécessaires avant de le faire.

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Il y a bien la propriété controlbox à false qui cache le bouton fermer, ainsi que les 2 autres.

    Néanmoins ça ne bloque absolument pas la fermeture du formulaire par Alt-F4 (ou un autre bout de code appelant .close du formulaire).

    Ceci suppose que la "procédure" nécessite une intervention (ou plusieurs) sur l'IHM:

    Le plus simple est de traiter l'évenement formclosing et de mettre e.cancel = true s'il n'est pas approprié de fermer le formulaire actuellement (pense quand même à mettre un avertissement qui explique pourquoi la fenêtre ne se ferme pas). Il faut aussi prévoir une porte de sortie, et la gestion qui va avec, pour l'utilisateur s'il veut effectivement arrêter la procédure au milieu. Sinon il y a des chances que ça soit du ressort du gestionnaire de tâches et c'est le bordel.

    Ceci suppose que la procédure ne nécessite pas d'intervention sur l'IHM (le gros bout de code bien moche qui boule):

    Si tu n'utilises pas un thread séparé (pas de polémique) l'affichage est déjà bloqué et l'utilisateur ne pourra pas cliquer sur le bouton fermer. Solution simple mais ayant la faculté d'enerver très rapidement l'utilisateur ce qui provoquera au mieux un CTRL-ALT-DELET au pire un vol de matériel à travers la fenêtre.

    Si tu utilises un thread séparé, ce dernier continue a s'executer même si le formulaire n'est plus affiché (on le voit toujours dans le gestionnaire de tâche). Dans ce cas tu peux utiliser le formclosing qui test l'état du thread ou gérer le retour du thread (affiche le résultat si formulaire encore ouvert).

  8. #8
    Membre régulier
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut
    Bonjour,
    je vous remercie de votre temps accorder ainsi que vos réponse ce qui ma permis d'arriver à mes fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Private FermetureFtp2011 = False
        Private Sub FermetureForm_closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
            e.Cancel = Not FermetureFtp2011
    ce qui me permet d'activer ou désactivé cette fameuse croix à mon bon vouloir en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FermetureFtp2011 = True
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FermetureFtp2011 = False

  9. #9
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 211
    Points
    211
    Par défaut
    Ou, si tu veux vraiment faire ce dont tu parlais initialement, tu peux toujours inclure ce code à ton form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Const CP_NOCLOSE_BUTTON As Integer = &H200
    Protected Overloads Overrides ReadOnly Property CreateParams() As    CreateParams
       Get 
          Dim myCp As CreateParams = MyBase.CreateParams 
          myCp.ClassStyle = myCp.ClassStyle Or CP_NOCLOSE_BUTTON 
          Return myCp 
       End Get 
    End Property

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/08/2010, 18h18
  2. [Débutant] rendre inactive croix rouge de fermeture
    Par matubun dans le forum MATLAB
    Réponses: 4
    Dernier message: 05/07/2010, 09h48
  3. Réponses: 2
    Dernier message: 26/08/2009, 14h44
  4. [E-00] Simuler l'appui sur la croix rouge (fermer)
    Par imaril dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/12/2008, 14h05
  5. [FORMS 4.5] Changer le statut d'une form
    Par xleb dans le forum Forms
    Réponses: 2
    Dernier message: 21/07/2005, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo