IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > WinForms > Divers
        Comment donner le style Windows XP à vos applications ?
        Comment changer le curseur de mon application ?
        Comment annuler la fermeture de la session Windows ?
        Comment permettre à l'utilisateur de choisir un répertoire ?
        Comment permettre à l'utilisateur de choisir un fichier pour ouvrir un document ?
        Comment permettre à l'utilisateur de choisir un fichier pour enregistrer un document ?
        Comment accéder à une méthode publique d'une form à partir d'une autre form créée par la première ?
        Comment suspendre la capture d'un évènement ?
        Comment rendre un contrôle transparent ?
        Comment détecter la fermeture intempestive de l'application ?
        Comment empêcher la fermeture de la fenêtre ?
        Comment remplir un ComboBox avec un DataReader ?
        Comment modifier dynamiquement l'icône d'un NotifyIcon ?
        Comment accéder aux composants graphiques à partir d'un autre thread ?
        Comment déplacer un pictureBox avec la souris ?
        Comment connaître le nombre d'écrans connectés à l'ordinateur ?
        Comment forcer l'évènement Paint ?
        Comment modifier le texte de la barre de titre ?
        Comment activer le curseur de traitement en arrière-plan en cours ?
        Comment forcer une fenêtre à apparaître à l'avant-plan ?
        Comment fermer un formulaire en fondu ?
        Comment empêcher le soulignement du caractére de raccourci clavier d'un Button ?
        Comment empêcher l'affichage du rectangle de focus d'un Button ?
        Comment utiliser un raccourci clavier sur une form pour effectuer une action ?
        Comment lister toutes les forms d'un projet ?
        Comment intercepter n'importe quel message Windows envoyé à la fenêtre ?
        Comment intercepter n'importe quelle exception non gérée dans une application Windows Forms ?



Comment donner le style Windows XP à vos applications ?
auteurs : abelman, keita
On peut donner le style Windows XP à son application de deux manières distinctes selon que l'on utilise le Framework.NET 1.0
ou une version ultérieure

Avec le Framework 1.0, il faut procéder ainsi :

  • créer un fichier nommé WindowsApplication1.exe.manifest à l'aide d'un éditeur de texte (WindowsApplication1 étant le nom de votre application) ;
  • copier, dans celui-ci, le texte suivant et sauvegarder le dans le répertoire où se trouve l'exécutable de votre application.

          
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity version="1.0.0.0" processorArchitecture="X86"
					  name="Microsoft.Winweb.MantaRay" type="win32" />
	<description>.NET control deployment tool</description>
	<dependency>
		<dependentAssembly>
			<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
				processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
		</dependentAssembly>
	</dependency>
</assembly>

        
On peut aussi procéder de la façon suivante (Framework 1.1 et versions ultérieures) :

  • ajouter un appel à Application.EnableVisualStyles dans votre code avant la création de tout contrôle ;
  • Mettre la propriété FlatStyle de tous les contrôles WinForms qui en possèdent une à System.

          
        // Soit dans la fonction  Main de démarrage de votre projet
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        
lien : fr System.Windows.Form.Application (MSDN)

Comment changer le curseur de mon application ?
auteur : Thomas Lebrun
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 Form
        private void Button1_Click(object sender, System.EventArgs e)
        {
            // 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.Default;
        }

        
N'hésitez pas à vous référer à la classe Cursors pour voir les types de curseurs disponibles et utilisables par votre application.

lien : fr System.Windows.Forms.Form (MSDN)

Comment annuler la fermeture de la session Windows ?
auteurs : swoög, tomlev
L'évènement SystemEvents.SessionEnding permet de détecter et d'annuler la fermeture de session :

          

    using Microsoft.Win32;
...

		static void Main(string[] args)
		{
			// Abonnement à l'évènement SessionEnding
			SystemEvents.SessionEnding += SessionEnding;
			
			
			// Suite du programme
			// ...
		}

        private void SessionEnding(object sender, SessionEndingEventArgs e)
        {
            DialogResult r = MessageBox.Show("Voulez vous annuler la fermeture de session ?", "Fermeture de session", MessageBoxButtons.YesNo, MessageBoxIcons.Question);
            if (r == DialogResult.Yes)
            {
            	e.Cancel = true;
            }
        }
        
Pour tester ce code, compilez l'application et exécutez la hors de l'environnement de votre IDE.

lien : fr Microsoft.Win32.SystemEvents.SessionEnding (MSDN)

Comment permettre à l'utilisateur de choisir un répertoire ?
auteur : abelman
On utilise le composant FolderBrowserDialog pour cela.

          
        private void button3_Click(object sender, System.EventArgs e)
        {
            folderBrowserDialog1.Description = "Choisissez votre répertoire";
            if (folderBrowserDialog1.ShowDialog(this) == DialogResult.OK)
            {
                MessageBox.Show(this,
                "Vous aves choisi " + folderBrowserDialog1.SelectedPath,
                "Repertoire",
                MessageBoxButtons.OK,
                MessageBoxIcon.Information);
            }

        }

        

Comment permettre à l'utilisateur de choisir un fichier pour ouvrir un document ?
auteur : abelman
Le composant System.Windows.Form.OpenFileDialog permet à l'utilisateur de choisir interactivement 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

          
        private void button2_Click(object sender, System.EventArgs e)
        {
            // Titre
            openFileDialog1.Title = "Chargement";
            // Extension par défaut
            openFileDialog1.DefaultExt = "txt";
            // Filtre sur les fichiers
            openFileDialog1.Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
            openFileDialog1.FilterIndex = 1;
            // Ouverture boite de dialogue OpenFile
            if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
            {
                // On vide le TextBox
                richTextBox1.Text = string.Empty;
                // Ouverture du fichier sélectionné
                // son nom est dans openFileDialog1.FileName
                StreamReader sr = new StreamReader(openFileDialog1.OpenFile(), Encoding.Default);
                try
                {
                    string data = sr.ReadLine();
                    while (data != null)
                    {
                        richTextBox1.AppendText(data + "\r\n");
                        data = sr.ReadLine();
                    }
                }
                finally
                {
                    if (sr != null)
                        sr.Close();
                }
            }
        }

        

Comment permettre à l'utilisateur de choisir un fichier pour enregistrer un document ?
auteur : abelman
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.

          
        private void button1_Click(object sender, System.EventArgs e)
        {
            // Demande de confirmation
            if (MessageBox.Show(this,
            "Sauvegarder le document?",
            "Sauvegarde",
            MessageBoxButtons.YesNo,
            MessageBoxIcon.Question) == DialogResult.No)
                return;
            // Sauvegarde du document
            saveFileDialog1.Title = "Sauvegarde";
            saveFileDialog1.DefaultExt = "txt";
            saveFileDialog1.Filter = "fichiers textes (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
            saveFileDialog1.FilterIndex = 1;
            // Ouverture boite de dialogue Enregistrer
            if (saveFileDialog1.ShowDialog(this) == DialogResult.OK)
            {
                // StreamWriter pour écrire dans le fichier sélectionné
                StreamWriter sw = new StreamWriter(saveFileDialog1.OpenFile(), Encoding.Default);
                try
                {
                    for (int i = 0; i < richTextBox1.Lines.Length; i++)
                        sw.WriteLine(richTextBox1.Lines[i]);
                }
                finally
                {
                    // Fermeture writer
                    if (sw != null)
                        sw.Close();
                }
            }
        }

        

Comment accéder à une méthode publique d'une form à partir d'une autre form créée par la première ?
auteur : dev01
Afin de pouvoir communiquer à partir d'une form nouvellement ouverte vers la form créatrice vous devez passer la form créatrice à la nouvelle form.

          
		//Dans Form1
		public void TraitementForm1()
		{

		}

        public void OuvertureForm2()
        {

            MaForm2 maForm2 = new MaForm2();
            maForm2.Owner = this;
            maForm2.Show();
        }

		//Dans MaForm2

        private void ButtonOk_Click(object sender, System.EventArgs e)
        {
            MaForm1 maForm1 = (MaForm1)this.Owner;
            maForm1.TraitementForm1();
        }

        

Comment suspendre la capture d'un évènement ?
auteur : neguib
Suite à une action utilisateur sur le clavier, nous devons parfois effectuer un long traitement. Et nous souhaiterions que les actions clavier ne soient pas enregistrées pendant ce traitement. Cette suspension peut être implémentée de la façon suivante :

          
		using System;
		using System.Windows.Forms;
		//...
		
        private void maSaisie_KeyUp(object sender, KeyEventArgs e)
        {
            //Exemple après l'appui de la touche "Enter"
            if (e.KeyCode == Keys.Enter)
            {
                //Arrêter la capture d'evenements clavier sur le contrôle
                this.maSaisie.KeyUp -= new KeyEventHandler(this.maSaisie_KeyUp);

                //Traitements longs

                //Reprendre la capture d'evenements clavier sur le contrôle
                this.maSaisie.KeyUp += new KeyEventHandler(this.maSaisie_KeyUp);
            }
        }

        

Comment rendre un contrôle transparent ?
auteur : Ditch
Dans le constructeur, il suffit d'ajouter

          
	this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
	this.BackColor = Color.Transparent;

        
après le InitializeComponents().


Comment détecter la fermeture intempestive de l'application ?
auteur : neguib
Parfois, nous avons besoin de distinguer si la fenêtre de l'application a été fermée par un clic sur un contrôle prévu à cet effet, ou si le clic a été effectué sur la petite croix en haut à droite de la fenêtre. Pour ce faire, nous avons juste besoin de savoir que l'évènement concerné est lié à l'Application et non au contrôle Form. Voici un exemple de code test, qui vous démontrera que seule la fermeture intempestive de l'application déclenchera le MessageBox.

          
	Application.ApplicationExit  += new EventHandler(Application_Exit);

	//...
	private static void Application_Exit(object sender, System.EventArgs e)
	{
		MessageBox.Show("Adieu vilaine brute");
	}

	private void button1_Click(object sender, System.EventArgs e)
	{
		Application.Exit();
	}

        

Comment empêcher la fermeture de la fenêtre ?
auteur : dev01
Il suffit de traiter l'évènement OnClosing du formulaire et de positionner Cancel à true

          
	private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
	{
		e.Cancel = true; //On annule la fermeture
	}

        
lien : System.ComponentModel.CancelEventArgs (MSDN)

Comment remplir un ComboBox avec un DataReader ?
auteur : HULK
Ce code permet de remplir rapidement un contrôle ComboBox avec un DataReader. Il nécessite un contrôle ComboBox nommé ici "ComboBox1"

          
			using System;
			using System.Data;
			using System.Data.SqlClient;
			using System.Windows.Forms;
			...

            SqlConnection con = null;
            SqlCommand command = null;
            String cs = " la chaine de connexion SQL";
            SqlDataReader dr = null;

            try
            {
                con = new SqlConnection(cs);
                command = new SqlCommand("SELECT champ FROM Table", con);
                con.Open();
                dr = command.ExecuteReader();

                ComboBox1.Items.Clear();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    { ComboBox1.Items.Add(dr.GetValue(0)); }
                }
                else
                {
                    MessageBox.Show("No result for your Data", "Infos",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (dr != null) { dr.Close(); }
                if (con != null) { con.Close(); }
            }
					

        

Comment modifier dynamiquement l'icône d'un NotifyIcon ?
auteur : neguib
L'intérêt est ici de pouvoir modifier le NotifyIcon de notre application afin, par exemple, d'y faire apparaître un texte en fonction de différentes circonstances. L'exemple implémenté se contentera de faire ici défiler dans l'objet notifyIcon1 les secondes d'un objet DateTime. La procédure est assez simple puisqu'il s'agit de travailler via un objet Bitmap pour la modification et de le convertir en Icon à assigner à la propriété notifyIcon1 .Icon. Ce qu'il ne faut absolument pas oublier est de détruire au fur et à mesure les icônes en mémoire. Le code suivant ne montre que l'essentiel, il vous faut bien sûr en plus déclarer et instancier les objets Font, Brush, Color et StringFormat souhaités

          
        ///<summary>
        /// Méthode privée timer1_Tick
        /// gestionnaire de l'évènement Tick de timer1
        ///</summary>
        private void timer1_Tick(object sender, EventArgs e)
        {
            // lancer la mise à jour de NotifyIcon1
            this.UpdateNotiFyIcon(DateTime.Now.Second.ToString());
        }

        ///<summary> Méthode privée UpdateNotiFyIcon
        /// chargée de mofifier notifyIcon1 dynamiquement
        ///</summary>
        ///<param name="texte">String : représente le texte à afficher
        ///</param>
        private void UpdateNotiFyIcon(String texte)
        {
            // redessiner iconBitmap
            this.UpdateBitmap(texte);
            // récupérer un icone à patir de iconBitmap
            Icon newIcon = Icon.FromHandle(this.iconBitmap.GetHicon());
            // assigner le nouvel icône de NotifyIcon1
            this.notifyIcon1.Icon = newIcon;
            // détruire en mémoire le nouvel icône
            newIcon.Dispose();
        }

        ///<summary> Méthode privée UpdateBitmap
        /// chargée de redessiner iconBitmap en fonction d'un texte
        ///</summary>
        ///<param name="texte">String : représente le texte à afficher
        ///</param>
        private void UpdateBitmap(String texte)
        {
            Graphics g = Graphics.FromImage(this.iconBitmap);
            // assigner la couleur de fond
            g.Clear(this.iconBackColor);
            // dessiner le texte
            g.DrawString(texte, this.iconFont, this.iconForeBrush, 14, 14, this.iconStringFormat);
            // libérer l'objet Graphics
            g.Dispose();
        }

        

Comment accéder aux composants graphiques à partir d'un autre thread ?
auteur : dev01
Pour accéder aux composants graphiques d'un formulaire à partir d'un autre thread que celui de la forme vous devez utiliser la fonction invoke des composants

          
        private void LanceThread(object sender, EventArgs e)
        {
            ThreadStart operation = new ThreadStart(Fonction1);

            Thread LeThread = new Thread(operation);

            LeThread.Start();
        }

        private void Fonction1()
        {
            if (textBox1.InvokeRequired)
                textBox1.Invoke(new TextBoxInvokeHandler(FonctionTextBox));
            else
                FonctionTextBox();
        }

        private delegate void TextBoxInvokeHandler();

        private void FonctionTextBox()
        {
            textBox1.Text = "dans le thread";
        }

        
Dans cet exemple nous créons notre propre délégué. Ceci est utile si vous avez des informations particulières à passer à votre fonction.


Comment déplacer un pictureBox avec la souris ?
auteur : cardi
Pour déplacer un PictureBox, nous avons besoin de 2 informations :

  • Le bouton gauche vient-il d'être enfoncé ?
  • La souris se déplace-t-elle en étant au dessus du PictureBox ?
Le Framework met justement à notre disposition 2 évènements nous permettant de connaître ces 2 informations :

  • MouseDown : notifie si le bouton de la souris a été enfoncé mais aussi à quel endroit ;
  • MouseMove : notifie si la souris se déplace.
Il suffit donc de traiter le premier évènement afin de connaître la position d'origine du clic et dans le second évènement, nous repositionnerons le PictureBox par rapport au déplacement de la souris.

          
      /// <summary> Position de la souris lorsque le bouton a été enfoncé </summary>
      Point positionClick;

      /// <summary>
      /// Notifie si le bouton de la souris a été enfoncé sur le PictuBox
      /// </summary>
      private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
      {
          // Vérification si bouton gauche de la souris est bien enfoncé
          if (e.Button == MouseButtons.Left)
              positionClick = e.Location;
      }

      /// <summary>
      /// Notifie si le curseur se déplace au dessus du PictureBox
      /// </summary>
      private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
      {
          // Vérification si bouton gauche de la souris est bien enfoncé
          if (e.Button == MouseButtons.Left)
          {
              // Calcul de la nouvelle position du PictureBox
              pictureBox1.Location = new Point(pictureBox1.Location.X + e.X - positionClick.X, pictureBox1.Location.Y + e.Y - positionClick.Y);
          }
      }
      
        

A noter que ce code peut être utilisé pour les autres contrôles qui proposent les évènements MouseDown et MouseMove.


Comment connaître le nombre d'écrans connectés à l'ordinateur ?
auteur : cardi
On utilise la propriété MonitorCount de la classe SystemInformation :

          
      // Nombre d'écrans connectés
      int MonitorCount = SystemInformation.MonitorCount;
      Console.WriteLine("Nombre d'écrans connectés à l'ordinateur = {0}", MonitorCount);
      
        
lien : fr System.Windows.Forms.SystemInformation (MSDN)

Comment forcer l'évènement Paint ?
auteur : cardi
Pour forcer l'évènement Paint, il suffit d'appeler la méthode Invalidate liée à la classe de la fenêtre :

          
      // Forcer l'évènement Paint
      this.Invalidate();
      
        

Cependant et pour des raisons de performances, on spécifiera le rectangle à rafraîchir :

          
      // Forcer l'évènement Paint en spécifiant le rectangle à raffraichir
      this.Invalidate(new Rectangle(0, 0, 10, 10));
      
        

Comment modifier le texte de la barre de titre ?
auteur : cardi
Pour une application Windows, c'est la propriété Text de la classe Form qui contient le texte de la barre de titre :

          
      this.Text = "Mon titre";
      
        

Comment activer le curseur de traitement en arrière-plan en cours ?
auteur : cardi
Lorsqu'un processus prend du temps, il est utile d'afficher le curseur notifiant à l'utilisateur qu'il faut patienter :

          
      // Affiche le curseur d'attente
      Cursor.Current = Cursors.WaitCursor;
      // Pause de 5 secondes
      Thread.Sleep(5000);
      // Efface le curseur par défaut
      Cursor.Current = Cursors.Default;
      
        

Comment forcer une fenêtre à apparaître à l'avant-plan ?
auteur : cardi
Il suffit tout simplement de mettre à true la propriété TopMost de la fenêtre :
this.TopMost = true;

Comment fermer un formulaire en fondu ?
auteur : jpjp507
Il est facile de fermer un formulaire en fondu avec c#. Il suffit d'insérer ce code dans un bouton pour permettre au formulaire de fermer en fondu :

          
/*cette boucle va se charger de rendre le formulaire transparent graduellement
grace à this.Opacity */
for (double dblOpacity = 1; dblOpacity > 0; dblOpacity += -0.05)
{
    this.Opacity = dblOpacity;
    //laisse le formulaire se recolorer
     this.Refresh();
     //crée un délai
     System.Threading.Thread.Sleep(50);
}
            
//insérez ici le code supplémentaire pour que le bouton effectue d'autres actions si nécessaire
Form.ActiveForm.Close();

        

Comment empêcher le soulignement du caractére de raccourci clavier d'un Button ?
auteur : olsimare
Il existe la propriété ShowKeyboardCues héritée de Control qui permet de déterminer si soulignement du caractére de raccourci clavier d'un Button doit être affiché ou pas. Cette propriété étant ReadOnly, il est nécessaire de créer un Button personnalisé qui la substitue (via Overrides).

          
public class NonKeyboardCuesButton : Button
{
    protected overrides bool ShowKeyboardCues
    {
		get
        {
            return false;
        }
	}
}

        

Comment empêcher l'affichage du rectangle de focus d'un Button ?
auteur : olsimare
Il existe la propriété ShowFocusCues héritée de Control qui permet de déterminer si le rectangle de focus doit être affiché ou pas. Cette propriété étant ReadOnly, il est nécessaire de créer un Button personnalisé qui la substitue (via Overrides).

          
public class NonFocusCuesButton : Button
{

    protected override bool ShowFocusCues
    {
        get
        {
        	return false;
        }
    }
}

        

Comment utiliser un raccourci clavier sur une form pour effectuer une action ?
auteur : nico-pyright(c)
il faut mettre en préambule l'attribut KeyPreview de la form à true, pour dire que la form doit traiter tous les évènements clavier en premier et ensuite surcharger le KeyDown de la form.
Exemple pour faire un raccourci CTRL+M :

              
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
        if( e.Control != null &amp;&amp; e.KeyCode == Keys.M )
		{
            MsgBox("Vous avez appuyé sur Ctrl + M");
        }
}

        

Comment lister toutes les forms d'un projet ?
auteur : Aspic

          
private ArrayList ListerForms()
{
        ArrayList resultat = new ArrayList();
 
        Reflection.Assembly a = System.Reflection.Assembly.GetAssembly(this.GetType());
        foreach(Type t in a.GetTypes)
        {
            if(typeof(Form).IsAssignableFrom(t))
            {
                Form f = (Form)Activator.CreateInstance(t);
                resultat.Add(f);
            }
        }
 
        return resultat;
}

        

Comment intercepter n'importe quel message Windows envoyé à la fenêtre ?
auteurs : cardi, tomlev
La plupart des messages Windows envoyés à la fenêtre déclenchent un évènement .NET. Si vous devez intercepter un message qui ne correspond à aucun évènement .NET, il suffit de redéfinir la méthode WndProc de la classe Control :

          
      protected override void WndProc(ref Message m)
      {
          switch (m.Msg)
          {
              // Fenêtre activée (WM_ACTIVATEAPP)
              case 0x001C: 
                  // Traiter le message
                  // ...
                  break;
              default:
                  break;
          }
          // On appele l'implémentation de base
          base.WndProc(ref m);
      }
      
        
lien : fr System.Windows.Forms.Control.WndProc (MSDN)

Comment intercepter n'importe quelle exception non gérée dans une application Windows Forms ?
auteurs : cardi, tomlev
L'objet application offre la possibilité de s'abonner à l'évènement ThreadException permettant d'être notifié lorsqu'un thread génère une exception non interceptée. Etant donné que la fenêtre est gérée par un thread, vous pourrez ainsi éviter le "plantage" de votre application ou effectuer un traitement adapté avant la fermeture de votre application.

          
static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [System.STAThread]
    static void Main()
    {
        System.Windows.Forms.Application.EnableVisualStyles();
        System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);

        // S'abonne à l'évènement permettant d'être averti qu'un thread génère une exception
        System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
        
        System.Windows.Forms.Application.Run(new Form1());
    }

    /// <summary>
    /// Lancé lorsque un thread n'intercepte pas une exception qu'il a généré
    /// </summary>
    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
        System.Windows.Forms.MessageBox.Show("L'exeption générée est : " + e.Exception.Message);
    }
}
        


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.