| [C#] Comment actualiser l'affichage du Form | |
|
|
Auteur | Message |
---|
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: [C#] Comment actualiser l'affichage du Form Sam 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 |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Sam 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 |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Sam 23 Oct 2010 - 16:42 | |
| Si j'ai compris tu parle de this.refresh()? _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Sam 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 |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Sam 23 Oct 2010 - 22:48 | |
| |
|
| |
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Dim 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 ! |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 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 Je blague. C'est bien this.Invalidate ou bien this.refresh ? |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 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 Je blague. C'est bien this.Invalidate ou bien this.refresh ? A mon avis, l'assemblement des deux, non ? |
|
| |
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 25 Oct 2010 - 7:41 | |
| Invalidate seulement mais je vais essayer refresh car bon ... Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 25 Oct 2010 - 14:59 | |
| - gosc a écrit:
- Invalidate seulement
mais je vais essayer refresh car bon ...
Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate 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 Tous Ensemble! Réalisons! |
|
| |
Linky439 Utilisateur confirmé: Rang *****
Messages : 2643 Localisation : Sur le forum du CBNA...ou pas Projet Actuel : La Galaxie Scellée
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 25 Oct 2010 - 15:20 | |
| - daminetreg a écrit:
- gosc a écrit:
- Invalidate seulement
mais je vais essayer refresh car bon ...
Edit : je viens d'essayer refresh, cette fois, pas de bug --' ça marche, même sans Invalidate 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 ! |
|
| |
Chlorodatafile Utilisateur confirmé: Rang *****
Messages : 2929 Localisation : Belfort Projet Actuel :
Paralights
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Lun 25 Oct 2010 - 15:59 | |
| merci daminetreg |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: [C#] Comment actualiser l'affichage du Form Mar 26 Oct 2010 - 2:17 | |
| Tu peux aussi faire un timer pour dessiner dnas un buffer et l'afficher _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Contenu sponsorisé
| Sujet: Re: [C#] Comment actualiser l'affichage du Form | |
| |
|
| |
| [C#] Comment actualiser l'affichage du Form | |
|