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

C# Discussion :

Acces à un control via une class perso


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut Acces à un control via une class perso
    Bonjour ,

    Étant débutant , j'ai un problème avec un contrôle . J'ai essayé de faire une form principal avec un richtextbox .

    je souhaiterai gérer ce contrôle par une autre class crée par moi même . J'arrive à accéder à une méthode de ma class mais le control n'excite pas dans le context actuel de ma class :

    un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
           console msg = new console();
     
    .....
     
     private void button_Click(object sender, EventArgs e)
            {
              msg.test(); 
            }
     
    }
    ma class perso :

    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
    namespace WindowsFormsApplication1
    {
        public class console 
        {
            private string message ;
     
            public void console_init () 
              {
              }
     
          public void test() 
            {
               richTextBox1.Select(9, 10);
               richTextBox1.SelectedText = "9876543210";
            }
    Surement un problème de déclaration
    Il faut commencer par un bout !!!!


    Merci pour vôtre aide

  2. #2
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bonjour,

    Je pense que tu peux le passer comme paramètre dans ta méthode test(), genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void test(RichTextBox richTextBox1, string DisplayedText)
            {
                richTextBox1.Select(9, 10);
                richTextBox1.SelectedText = DisplayedText;
            }
    et dans ta Form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
           console msg = new console();
     
    .....
     
    private void button_Click(object sender, EventArgs e)
            {
              msg.test(richTextBox1, "9876543210"); 
            }

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 59
    Par défaut Encore
    Bonjour,
    Pour débuter je te conseille la méthode de Redouane qui est simple et efficace ... Mais si tu compte utiliser la ressource d'un form (RichTextBox dans ton cas) à partir d'une classe dont l'exécution est dans un thread la cette solution va te générer une exception.

    Ceci parce que les contrôles contenus dans un From s'exécutant sur un thread ne peuvent pas être touchés par un autre thread sauf en utilisant un delegate que tu va passer dans la méthode invoke ....
    enfin je détaille mais c'est une information à connaitre ...

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    merci beaucoup

    je tente

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    une question ?

    Comment peux t on créer un projet dans plusieurs documents source afin de ne pas mélanger les procédures . Meilleurs lisibilité du prg ...

    Merci

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    Citation Envoyé par parabole33 Voir le message
    une question ?

    Comment peux t on créer un projet dans plusieurs documents source afin de ne pas mélanger les procédures . Meilleurs lisibilité du prg ...

    Merci
    un projet peut contenir autant de fichier et de classes que tu veux, rien ne t'empeche de faire un fichier par classe.

    Je pense que tu as plutot voulu demander :
    comment peut on créer une classe dans plusieurs fichiers source ......

    pour cela il faut utiliser le mot partial, et d'ailleur tu vois que c'est le cas pour les Form, si ta form s'appelle Form1, tu as toujours un fichier Form1.cs et un fichier Form1.Designer.cs
    tu notera que dans ces deux fichiers, tu retrouve la déclaration suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class Form1 : Form

    C'est ce qui permet d'etaler la définition de la classe sur les 2 fichiers, l'un pour le code que tu vas ajouter, l'autre généré automatiquement par le Designer.

    Un puriste te dira surement qu'il ne faut pas faire de classe à tout faire, trop grosse (et il a surement raison). Cela dit si ta classe devient imposante, en effet il me semble judicieux de séparer ta classe sur 2 ou 3 fichiers pour regrouper les choses... Je le fais souvant par exemple si ma classe gere des evenements/ Callback, je place toutca dans un fichier MaClasseEvents

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Redouane Voir le message
    Bonjour,

    Je pense que tu peux le passer comme paramètre dans ta méthode test(), genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void test(RichTextBox richTextBox1, string DisplayedText)
            {
     
               string DisplayedText="" ;
               richTextBox1.Select(9, 10);
                richTextBox1.SelectedText = DisplayedText;
            }
    et dans ta Form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
           console msg = new console();
     
    .....
     
    private void button_Click(object sender, EventArgs e)
            {
              msg.test(richTextBox1, "9876543210"); 
            }

    G un autre soucis ..

    Depuis ma classe console via une autre méthode, je n'arrive pas à accéder à la méthode test .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void test(RichTextBox richTextBox1)
            {
                richTextBox1.Select(9, 10);
                ......
            }
    appel -->> test();


    Erreur 1 Aucune surcharge pour la méthode 'effacement_console' ne prend d'arguments '0'
    Merci par avance

  8. #8
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Erreur 1 Aucune surcharge pour la méthode 'effacement_console' ne prend d'arguments '0'
    ton erreur montre que t'utilise une methode qui s'appelle "effacement_console", avec des arguments (tu passe des paramètres dans cette méthode), mais lors de l'appel de cette dernière tu ne passes aucun paramètre :

    enfin, je crois. vérifier bien tes méthodes et les paramètres passés.

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Redouane Voir le message
    ton erreur montre que t'utilise une methode qui s'appelle "effacement_console", avec des arguments (tu passe des paramètres dans cette méthode), mais lors de l'appel de cette dernière tu ne passes aucun paramètre :

    enfin, je crois. vérifier bien tes méthodes et les paramètres passés.
    depuis ma class console , je n'arrive pas à exécuter une méthode qui a des arguments dont des contrôles.

    Pour être simple de la Form1 vers console : OK

    De console vers console : non

    Méthode dans la class console.
    test(RichTextBox richTextBox1, string DisplayedText)

    Appel : test( " je suis malade ") ; Erreur .

    Si je supprime RichTextBox richTextBox1 , ca fonctionne .
    C 'est la présence de RichTextBox richTextBox1 qui le perturbe ....

    Merci pour vôtre aide .

  10. #10
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test(RichTextBox richTextBox1, string DisplayedText)
    La méthode prend 2 paramètres et tu n'en passes qu'un seul avec
    Il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test(richTextBox1, "je suis malade")
    où richTextBox1 est le contrôle RichTextBox à utiliser.

    Tu devrais relire les bases.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/08/2014, 00h13
  2. [Débutant] Modification d'un Control via une classe
    Par Owleur dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/04/2013, 17h29
  3. Acces aux control d'une form depuis une classe
    Par PhilCou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/07/2008, 09h59
  4. Réponses: 4
    Dernier message: 06/04/2008, 18h34
  5. Mise à jour d'une controle via une classe.
    Par Andry dans le forum Delphi
    Réponses: 4
    Dernier message: 23/06/2006, 15h00

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