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 :

Methode modifiant la form [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut Methode modifiant la form
    Bonjour,
    Je suis en train de créer une bataille navale, et j'ai une form où est générée dans le load toutes les cases, avec leur nom en coordonnées.
    J'ai une classe Bateau, qui possède une méthode DessinerBateau() qui va déssiner le bateau en modifiant les pictureBox.

    Comment faire pour qu'une méthode modifie la pictureBox de ma form qui se lance au démarrage du programme?

    Merci pour vos réponses j'espère avoir été claire

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    Il va falloir utiliser les références

    Déclare ton tableau de PictureBox en dehors de t'as méthode Load, rend le visible dans ton objet Form1.

    Code t'as méthode DessinerBateau() de cette manière :
    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
     
     
    public void DessinerBateau(ref PictureBox [] boxs)
    {
           //ton code pour modifier t'es images, ex :
           boxs[0].Image = //Ton image
    }
     
    //Lorsque tu appel Dessinertableau dans t'as Form1 tu passe ton tableau de pictureBox instancié dans t'as méthode Load() en référence
     
    //exemple
    public PictureBox [] mesPicturesBox //initialisé dans Load()
     
    public void ButonInitBateau(object sender, EventArgs e)
    {
          Bateau monObjetBateau = new Bateau();
          //
          this.monObjetBateau.DessinerBateau(ref mesPicturesBox);
    }
    On aurait tres bien pu faire sa avec List<PictureBox> à la place d'un tableau

    J'espere avoir compris ton problème ^^

    Cordialement

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Merci je vais essayer ça tout de suite
    Le truc c'est que je n'appelle pas la fonction DessinerBateau dans form1 mais dans une autre form, du coup j'y ait pas accès, à voir.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    Ben alors déclare tes objetsBateau et PictureBox dans ta Form1 et passe les en paramètres (dans le constructeur) quand tu créer ta Form2. Oublie les reférences ca sert à rien !

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Je pense qu'il est preferable de declarer UN et UN seul PictureBox, ta classe bateau utilisera un Graphics creée sur une image assigné a ce PictureBox

    (Oui dis comme ca c'est peut etre un peu chinois, mais utiliser un tableau ou une liste de picturebox c'est une aberration !!)

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    C'est pas con non plus

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    J'ai pas de Form2, en fait je vais mieux expliquer :

    en gros dans Bateau j'ai


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DessinerBateau()
    {
    DessinPictureBox(getCases());
     
    }
    et dans Form1 j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DessinPictueBox(casesADessiner);
    {
    // le dessin des cases 
    }
    Seulement, je ne sais pas comment faire pour que Bateau utilise DessinPictureBox de ma form actuelle, et donc modifie la form courante.
    Peut-être que je ne choisis pas la bonne solution ^^ ....

    Merci pour l'aide tout de même je continue de chercher

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    Si tu tiens absolument à faire sa passe ton objet form1 en parametre lorsque tu instancie ton objet bateau

    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
     
    //Dans form1
    Bateau monBateau = new Bateau(this);
     
     
    //*************************
     
    //Dans classe Bateau
     
    //Constructeur de bateau
    private Form1 form;
     
    public Bateau(Form1 _form)
    {
          this.form = _form;
    }
     
    public void DessinerBateau()
    {
          //pas oublier de declarer cette methode en public dans Form1 sinon elle ne sera pas visible 
          this.form.DessinPictureBox();
    }

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Pour dessiner il faut

    - un fond (une image)
    - un Graphics (la classe de dessin)

    Le Graphics est associés a un fond : l'image

    Chaque methode de ton Graphics va modifier le fond;

    Ensuite tu assigne l'image au picturebox qui n'est qu'un composant d'affichage

    Donc ta classe bateau pour desiner doit avoir une reference au Graphics d'une maniere ou d'une autre

    Le plus simple etant de passer le graphics à la methode Draw de ton bateau

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

Discussions similaires

  1. JTableHeader, modifier la forme
    Par nicotine002 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 05/01/2007, 13h15
  2. modifier une forme apres un login
    Par fourquet dans le forum Delphi
    Réponses: 1
    Dernier message: 14/12/2006, 13h51
  3. [C#] Modifier mes Forms a partir de Class
    Par folk dans le forum Windows Forms
    Réponses: 12
    Dernier message: 01/08/2006, 17h54
  4. Modifier la forme des boutons
    Par issou dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/04/2006, 20h35
  5. Réponses: 4
    Dernier message: 04/10/2005, 00h07

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