AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 [C#] Comment actualiser l'affichage du Form

Aller en bas 
AuteurMessage
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptySam 23 Oct 2010 - 10:54

Bonjour ! Pourriez vous m'aider ?

J'aimerais que quand je clique sur mon morpion dans mon programme, l'affichage s'actualise et m'affiche ma croix ou mon rond, j'ai déjà passé 5H dessus, je n'y arrive pas !

Le code :
Code:
public partial class Form1 : Form
    {
        const int org_x = 60;
        const int org_y = 60;
        const int case_size_x = 60;
        const int case_size_y = 60;
        bool cruxornot = false;
        int[,] Morpitab = new int[3, 3];

        public Form1()
        {
            InitializeComponent();
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Morpitab[i, j] = 0;
                }
            }
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics Mafeuille = e.Graphics;
            Pen MonCrayon = new Pen(Color.BlueViolet);
            MonCrayon.Width = 2;
            Mafeuille.DrawLine(MonCrayon, org_x, org_y + 60, org_x + 180, org_y + 60);
            Mafeuille.DrawLine(MonCrayon, org_x, org_y + 120, org_x + 180, org_y + 120);
            Mafeuille.DrawLine(MonCrayon, org_x + 60, org_y, org_x + 60, org_y + 180);
            Mafeuille.DrawLine(MonCrayon, org_x + 120, org_y, org_x + 120, org_y + 180);
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (Morpitab[i, j] == 1)
                    {
                        MonCrayon.Color = Color.Blue;
                        Mafeuille.DrawLine(MonCrayon, ((case_size_x) * i + org_x) + 55, (case_size_y * j + org_y) + 5, (case_size_x * i + org_x) + 5, (case_size_y * j + org_y) + 55);
                        Mafeuille.DrawLine(MonCrayon, (case_size_x * i + org_x) + 5, (case_size_y * j + org_y) + 5, (case_size_x * i + org_x) + 55, (case_size_y * j + org_y) + 55);
                    }
                    if (Morpitab[i, j] == 2)
                    {
                        MonCrayon.Color = Color.Red;
                        Mafeuille.DrawEllipse(MonCrayon, (case_size_x * i + org_x) + 5, (case_size_y * j + org_y) + 5, 50, 50);
                    }
                }
            }
         
        }

        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            double coordX = e.X;
            double coordY = e.Y;
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (Morpitab[i, j] == 0)
                    {
                        if (coordX >= ((case_size_x) * i + org_x))
                        {
                            if (coordX <= ((case_size_x) * i + org_x) + 60)
                            {
                                if (coordY >= ((case_size_y) * j + org_y))
                                {
                                    if (coordY <= ((case_size_y) * j + org_y) + 60)
                                    {
                                        Morpitab[i, j] = 1 + Convert.ToInt16(cruxornot);
                                        cruxornot = !cruxornot;
                                       
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

en passant aussi, si quelqu'un sait comment on utilise "And" en C#, j'ai trouvé & et &&, mais je ne réussi pas à les utiliser ...

merci d'avance Smile
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
glcraft
Utilisateur confirmé: Rang *****
glcraft

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptySam 23 Oct 2010 - 14:43

a mon avis, echange de place la fonction Paint et la fonction Mouse_Click, c'est possible que ca marche mieux

et pour l'operateur AND, ca marche comme le C : if (CS!=CPP && CS!=Java) return 1;
sinon tu peut toujours verifier ici
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Wargamer
*Excellent utilisateur*
Wargamer

Messages : 6938
Projet Actuel : Bataille de cake au fruits

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptySam 23 Oct 2010 - 16:42

Si j'ai compris tu parle de this.refresh()?

_________________
[C#] Comment actualiser l'affichage du Form Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptySam 23 Oct 2010 - 16:57

je peux pas intervertir les deux, j'ai besoin d'être dans ses events pour mes actions ...

wargamer, j'essaye ...

edit :
Citation :
Erreur 1 'WindowsFormsApplication2.Form1' ne contient pas une définition pour 'refresh' et aucune méthode d'extension 'refresh' acceptant un premier argument de type 'WindowsFormsApplication2.Form1' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?) C:\Users\Enfants\Document Flo et Gwen\Document\Lycee Gwenael\ISN\WindowsFormsApplication2\WindowsFormsApplication2\Form1.cs 87 46 WindowsFormsApplication2

voilà %)

Aussi, pour le &&, ça marche, merci Smile
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE

Messages : 408
Localisation : Québec

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptySam 23 Oct 2010 - 22:48

Essaie: this.Invalidate
Revenir en haut Aller en bas
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyDim 24 Oct 2010 - 10:50

ça marche d'enfer ! merci !

avec ça je pourrais montrer le résultat à mon prof sans oublier de dire que j'ai eu à demander de l'aide pour ça, mais merci, vraiment, c'est le seul truc qui coincé ! tu me sauves !
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE

Messages : 408
Localisation : Québec

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 0:06

gosc a écrit:
ça marche d'enfer ! merci !

avec ça je pourrais montrer le résultat à mon prof sans oublier de dire que j'ai eu à demander de l'aide pour ça, mais merci, vraiment, c'est le seul truc qui coincé ! tu me sauves !

Non, je veux mon nom dans les crédits beh Je blague. C'est bien this.Invalidate ou bien this.refresh ?
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 0:09

CoDeAVE a écrit:
gosc a écrit:
ça marche d'enfer ! merci !

avec ça je pourrais montrer le résultat à mon prof sans oublier de dire que j'ai eu à demander de l'aide pour ça, mais merci, vraiment, c'est le seul truc qui coincé ! tu me sauves !

Non, je veux mon nom dans les crédits [C#] Comment actualiser l'affichage du Form Beh Je blague. C'est bien this.Invalidate ou bien this.refresh ?
A mon avis, l'assemblement des deux, non ?
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 7:41

Invalidate seulement Wink

mais je vais essayer refresh car bon ...

Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate Smile
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
daminetreg
Administrateur
daminetreg

Messages : 16996
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 14:59

gosc a écrit:
Invalidate seulement Wink

mais je vais essayer refresh car bon ...

Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate Smile

Invalidate est moins rapide au rafraichissement que refresh, puisque cela met ta form dans un état signalé: à revalider, ce qui veut dire: à redessiner. Refresh invalide puis rafraîchit de suite, on utilise invalidate pour que WPF sache qu'il devra rafraîchir ce composant au moment où il rafraîchira les autres composants.

En utilisant Invalidate il fera moins de fois l'invalidation que si tu appelles tout le temps refresh, donc ce sera moins coûteux en ressources: http://bytes.com/topic/c-sharp/answers/244445-control-invalidate-vs-control-refresh

++

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
[C#] Comment actualiser l'affichage du Form U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
Linky439
Utilisateur confirmé: Rang *****
Linky439

Messages : 2638
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 15:20

daminetreg a écrit:
gosc a écrit:
Invalidate seulement Wink

mais je vais essayer refresh car bon ...

Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate Smile

Invalidate est moins rapide au rafraichissement que refresh, puisque cela met ta form dans un état signalé: à revalider, ce qui veut dire: à redessiner. Refresh invalide puis rafraîchit de suite, on utilise invalidate pour que WPF sache qu'il devra rafraîchir ce composant au moment où il rafraîchira les autres composants.

En utilisant Invalidate il fera moins de fois l'invalidation que si tu appelles tout le temps refresh, donc ce sera moins coûteux en ressources: http://bytes.com/topic/c-sharp/answers/244445-control-invalidate-vs-control-refresh

++

Am I dreaming ?
It's daminetreg !!
:p

_________________
Cliquez pour accéder aux topics dédiés !
[C#] Comment actualiser l'affichage du Form I4AWwEs    [C#] Comment actualiser l'affichage du Form CaVn0FN
Revenir en haut Aller en bas
Chlorodatafile
Utilisateur confirmé: Rang *****
Chlorodatafile

Messages : 2929
Localisation : Belfort
Projet Actuel :
Paralights

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyLun 25 Oct 2010 - 15:59

merci daminetreg Smile
Revenir en haut Aller en bas
http://chlorodatafile.tumblr.com/
Wargamer
*Excellent utilisateur*
Wargamer

Messages : 6938
Projet Actuel : Bataille de cake au fruits

[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form EmptyMar 26 Oct 2010 - 2:17

Tu peux aussi faire un timer pour dessiner dnas un buffer et l'afficher

_________________
[C#] Comment actualiser l'affichage du Form Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Contenu sponsorisé




[C#] Comment actualiser l'affichage du Form Empty
MessageSujet: Re: [C#] Comment actualiser l'affichage du Form   [C#] Comment actualiser l'affichage du Form Empty

Revenir en haut Aller en bas
 
[C#] Comment actualiser l'affichage du Form
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: