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 :

création et utilisation de classes dans Windows Form en C sharp


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut création et utilisation de classes dans Windows Form en C sharp
    Bonjour,

    lors du développement de programmes sous Visual studio 2013, je parviens à définir une classe dans mon Form1.cs, dont le nom est reconnus lorsque j'essaye d'en instancier un objet (Je tente d'appeler mon constructeur dans un Event). Cependant un problème d'accès (de niveau de protection) persiste et m'empêche d'appeler le constructeur.
    J'ai tout mis en public (classe et attributs) pour essayer mais, rien ne change...

    Ma question est la suivante :
    Quelle est la meilleure méthode pour définir une nouvelle classe utilisable lors d'évènements dans une programme Windows Form ?

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    la manière la plus propre à mon sens est de mettre ta classe dans un fichier dédié. Maintenant ça ne corrigera pas ton problème de scope.
    Vu que t'es dans le même fichier j'enlève le cas du namespace qui diffère. Il te reste (liste non exhaustive) :
    - un constructeur privé,
    - une classe statique,
    - un seul constructeur, avec des param, et tentative d'appel au constructeur par défaut.

    Si tu nous montres ta déclaration on pourra certainement t'en dire plus.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut
    j'ai suivi ton conseil pour la structure des fichiers en séparant ma définition de classe.

    Voici la partie appelant le constructeur dans mon Form1.cs :
    public void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    a = 1;
    b = 1;
    victoire();
    bloquer2();
    Couple combinaison= new Couple(a,b);


    }

    dans le namespace WindowsFormApplication4

    Puis le fichier de définition de la classe :

    using System;
    namespace WindowsFormsApplication4
    {

    public class Couple
    {
    int m_a, m_b;
    public Couple()
    {

    m_a = 0;
    m_b = 0;
    }
    public Couple(int a, int b)
    {
    m_a = a;
    m_b = b;
    }
    }
    }

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Re,

    utilise les balise CODE pour encadrer tes bout de code (bouton '#' dans les outils) pour le rendre plus lisible.
    Sinon, WindowsFormApplication4 est bien le même namespace que celui où tu définis ta Form ?
    Le fichier cs contenant ta classe est bien integré à ton projet ?
    Parce que là je vois pas de souci au niveau du code (en imaginant que les variables a et b que tu utilises dans ton event soient définies au niveau de ta classe Form).

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Re,

    utilise les balise CODE pour encadrer tes bout de code (bouton '#' dans les outils) pour le rendre plus lisible.
    Sinon, WindowsFormApplication4 est bien le même namespace que celui où tu définis ta Form ?
    Le fichier cs contenant ta classe est bien integré à ton projet ?
    Parce que là je vois pas de souci au niveau du code (en imaginant que les variables a et b que tu utilises dans ton event soient définies au niveau de ta classe Form).
    Finalement en ajoutant 'public' devant mon constructeur, son utilisation devient possible depuis Form1, merci mille fois pour ton aide.

    C'est ma première sur ce forum, mais surement pas la dernière

  6. #6
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Pour info : si le niveau d'accessibilité (public, protected, internal, private) n'est pas précisé alors par défaut c'est protected.
    Une méthode ou un attribut protected n'est accessible que depuis la classe elle-même ou une classe fille qui en dérive.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/03/2010, 16h08
  2. VB Utiliser les class dans le fichier form
    Par thomaldinho dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/01/2010, 12h01
  3. utilisation de classe dans une DLL
    Par _stef_ffff_f34 dans le forum Windows
    Réponses: 1
    Dernier message: 10/02/2006, 16h03
  4. [VBA]xl*-Utiliser F1...F12 dans un form
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 40
    Dernier message: 27/01/2006, 11h34
  5. utilisation de CLASS dans un formulaire
    Par lepierre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/11/2004, 16h38

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