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 :

affichage d'une matrice


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut affichage d'une matrice
    bonjour,

    je veut afficher une matrice déclaré comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const int MSIZE=256;
     double[,] matrix = new double[MSIZE,MSIZE];
    je ne sais pas quelle control choisir pour un affichage comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int j=0;j<MSIZE;j++) {
    	for(int i=0;i<MSIZE;i++) {
    	matrix[i][j].ToString()+" ";}}
    j'aimerai bien que l'affichage correspond à un matrice ...256 lignes et 256 colonnes....(pas come celui d'un textbox, le tout est affiché sur une meme ligne)

    merci.....

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Une ListView peut faire l'affaire pour afficher ce type de données de manière lisible.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    merci binoo,

    oui mais comment?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Ba faut un peu chercher comment utiliser les listView...

    Une piste quand même, il va te falloir :
    - paramétrer ton listView de manière a pouvoir mettre des colonnes : propriété View à "Details".

    - et ajouter les entêtes de colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0;i<MSIZE;i++) {
      // Ajout des entêtes de colonnes -> voir propriété Columns
    }
    - Après tu parcours de la même manière que tu as fait, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int j=0;j<MSIZE;j++) {
      for(int i=0;i<MSIZE;i++) {
        // ajout à tonListView des données -> voir propriétés Items et SubItems
      }
    }

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'aurais plutôt dit un DataGridView, plus adapté dans ce cas précis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                dgv.RowCount = 256;
                dgv.ColumnCount = 256;
                for (int i = 0; i < 256; i++)
                {
                    for (int j = 0; j < 256; j++)
                    {
                        dgv[i, j].Value = matrix[i, j];
                    }
                }
    (où dgv est la DataGridView)

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Disons que pour un affichage basique ni plus ni moins, il n'y a pas de composant vraiment plus adapté... Peut-être plus facile d'utilisation

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    merci pour vos reponses......
    la reponse de tomlev est plus simple a utilisé, je confirme.
    seulement ça serait plus comode (pour les yeux) , d'afficher dans le datagridview l'indice de la ligne et la colonne pour retrouver un element i,j facilement (parceque quand je parcours je me perd facilement).

    j'attends vos reponses....et Merci encore.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il faut changer le texte de l'en-tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                for (int i = 0; i < 256; i++)
                {
                    dgv.Columns[i].HeaderText = i.ToString();
                    dgv.Rows[i].HeaderCell.Value = i.ToString();
                }

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    merci tom

    tu veut dire que le code devient comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    dgv.RowCount = 256;
    dgv.ColumnCount = 256;
      for (int i = 0; i < 256; i++)
                {
                    dgv.Columns[i].HeaderText = i.ToString(); 
                    dgv.Rows[i].HeaderCell.Value = i.ToString();
                }
                for (int i = 0; i < 256; i++)
                {
                    for (int j = 0; j < 256; j++)
                    {
                        dgv[i, j].Value = matrix[i, j];
                    }
                }

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    oui

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    j'ai afficher ce dernier code, mais je vois que les indices des colonnes, en plus l'exécution devient trop lourde...

    tu peut m'expliquer que fait ces 2 instructions STP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dgv.Columns[i].HeaderText = i.ToString(); 
    dgv.Rows[i].HeaderCell.Value = i.ToString();

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Columns[i].HeaderText = i.ToString();
    Ca il me semble que c'est assez explicite... dgv.Columns[i].HeaderText est le texte de l'en-tête de la colonne i. On met dedans la valeur de l'index (sous forme de chaine, puisque c'est une chaîne qui est attendue).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgv.Rows[i].HeaderCell.Value = i.ToString();
    Là c'est plus de la bidouille, parce qu'il n'y a pas de propriété HeaderText... donc on change la valeur de la cellule d'en-tête de la ligne i, ce qui revient au même.

    j'ai afficher ce dernier code, mais je vois que les indices des colonnes, en plus l'exécution devient trop lourde...
    Bizarre, chez moi je vois bien les index de ligne...
    Pour ce qui est des performances, je ne vois pas très bien ce qu'on peut y faire. A la rigueur tu peux essayer d'intégrer ça dans l'autre boucle, mais ça fera pas gagner beaucoup.

  13. #13
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    j'ai fait quelques modifications...et l'execution n'est plus lourde

    mais....c'est bizarre l'affichage des indices est uniquement pour les colonnes.......tu veut pas dire les info bule....
    y a que ça qui temoigne :
    Fichiers attachés Fichiers attachés

  14. #14
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Par défaut
    bonsoir,

    je m'excuse j'ai pas répondu aussi tot........
    t'a raison Tomlev, l'affichage est bon...donc mon probleme est resolu.

    merci, 1000 merci.

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

Discussions similaires

  1. Problème d'affichage d'une matrice
    Par zicoadis dans le forum Débuter
    Réponses: 4
    Dernier message: 26/01/2008, 17h36
  2. Affichage d'une matrice dans un edit
    Par harris_macken dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 22/11/2007, 21h35
  3. Réponses: 5
    Dernier message: 10/11/2007, 10h20
  4. [TP] Affichage d'une matrice
    Par williamdunord dans le forum Turbo Pascal
    Réponses: 19
    Dernier message: 28/05/2007, 20h46
  5. Affichage d'une matrice
    Par ypascal dans le forum Pascal
    Réponses: 7
    Dernier message: 24/04/2006, 20h03

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