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

Windows Forms Discussion :

Masquer la forme au démarrage


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Masquer la forme au démarrage
    Bonjour,

    j'ai un problème tout bête mais que je n'arrive pas à le résoudre. Je développe une application qui sert de passerelle entre iTunes et un périphérique USB. L'application n'as pas d'interface à part un petit icone dans la barre des tâche en bas à droite.

    J'utilise pour cela un NotifyIcon. Seulement je n'arrive pas à masquer la fenêtre principal au démarrage de l'application. Il y a bien la fonction Hide() mais elle ne la masque pas. Si je l'utilise sur un événement d'un bouton par exemple: là elle la masque.

    Qqu a une idée?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Salut,

    c'est pas tres propre mais ca fonctionne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            private System.Windows.Forms.Timer timer1;
            public Form1()
            {
                InitializeComponent();
                this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
                this.timer1.Interval = 1;
                this.timer1.Enabled = true;
     
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                this.Visible = false;
                this.timer1.Enabled = false;
     
            }
     
        }
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci

    Ca fonctionne, mais avec le délais d'une seconde la fenêtre est visible durant cette seconde avant de se fermer. Ca fait un peu cheni. Que ca ne soit pas très propre ca me dérange pas, j'essai du coup de la mettre en dehors de la résolution de l'écran mais ca ne fonctionne pas.

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    un peu moins barbare :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void Form1_Shown(object sender, EventArgs e)
            {
                if (Visible)
                {
                    Visible = false;
                }
            }
    The Monz, Toulouse

    PS : ou au pire, application console
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    La fenêtre s'affiche toujours une fraction de seconde avant de ne plus être visible. Comment faire pour éviter ca?

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    si tu veux vraiment faire le "sauvage".. tu peux la mettre en mode Minimized au demarrage peut-etre ou au pire, tu trappes WndProc et sur un des messages
    genre WM_PAINT, tu refuses le message... comme ca , ta fenetre ne sera
    pas affichée

    Mais bon, c'est quelque peu brutal.. désolé, j'ai pas le temps d'expérimenter
    autre chose de suite

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Tu peux trouver la solution dans la feinte miroir :
    plutot que de "cacher" tu "montres" : Montrer trop est une facon de cacher.

    En somme (et ca fait plus classe^^) Tu affiches juste une petite fenetre, sans bordure, avec une zoulie n'image qui dit que le programme se lance... Avec un Timer elle se ferme au bout de 3 secondes...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    A mon avis il suffit de rajouter a la fin de la fonction InitializeComponent():
    This.visible = false ;
    Et elle ne s affichera que lorsque tu change cette propriété.

    Voila, j espere que ça marche !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Dans ce cas, je l'ajouterais dans le constructeur, après le Initialize, pas dedans... Sinon le designer va la virée vite fait bien fait..
    D'ailleurs ca donne quoi dans le designer si on dit que la form n'est pas visible?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Ca change rien du tout , et ça répond à ton besoin !

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    reSalut,

    essaie ca ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public Form1()
            {
                InitializeComponent();
                //on minimise
                this.WindowState = FormWindowState.Minimized;
                this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
                this.timer1.Interval = 1;
                this.timer1.Enabled = true;
     
            }

    tout bien reflechi la maniere de TheMonz est plus propre .. et ca marche aussi en minimisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.WindowState = FormWindowState.Minimized;
     
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                if (Visible)
                {
                    Visible = false;
                } 
            }
        }

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Le visible=false n'a pas l'air de fonctionner lorsque je le met a la fin du initiliize. Donc finalement j'ai fait une fenêtre sans bordure de taille 0 qui se cache avec l'événement shown. Ca fonctionne c'est ok.

    Merci pour votre aide

Discussions similaires

  1. Comment masquer une form au démarrage
    Par duffi dans le forum C#
    Réponses: 4
    Dernier message: 07/04/2011, 12h11
  2. [C#]form de démarrage, visual Studio 2005
    Par mcay dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/10/2005, 16h07
  3. Masquer une forme lors du passage de souris
    Par gilles641 dans le forum Langage
    Réponses: 7
    Dernier message: 15/07/2005, 17h07
  4. [C#]Définir un form au démarrage URGENT
    Par pc152 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/06/2005, 11h41
  5. [C#] Définir le forme de démarrage avec SharpDevelop
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/10/2004, 10h52

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