C#: Colonnes introuvable dans un DataGridView

Signaler
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
12 juin 2010
-
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour à tous,

j'explique la situation:

j'ai un DataGridView dans mon application qui a comme DataSource une DataTable qui reçoit ses données d'un OleDbDataReader. Jusque là, aucun problème. Mes données s'affichent très bien dans mon DGV, mais le problème suivant me rend perplexe.

Comme j'ai des champs qui contiennent de longues chaînes de caractères, j'aimerais pouvoir redimensionner les colonnes du DGV. Mais pour une raison que j'ignore, je ne peux pas accéder à la propriété Columns du DGV et par conséquent, à la propriété Width.

Est-ce parce que j'utilise un DataSource? Est-ce parce que je ne crée pas mon DGV du début en créant Rows et Columns? Y a-t-il quelque façon que ce soit d'accéder à la propriété Width des Columns?

Voici un peu de code qui pourrait vous aidez à résoudre mon problème.

private void tabAll_Enter(object sender, EventArgs e)
{
  DataTable table;

  this.gestion.OpenConnection();
  table = gestion.VueGlobale();
  this.gestion.CloseConnection();

  this.dgvVueGlobale.DataSource = table;
  
  // Ici j'aimerais soit pouvoir redimensionner la largeur des colonnes ou
  // bien les mettre en AutoSizeMode

}

public DataTable VueGlobale()
{
  DataTable table = new DataTable();
  OleDbDataReader reader = connection.ExecuteQuery(
      "SELECT titre as Titre, genre as Genre, prenomRealisateur +" + 
      "' ' + nomRealisateur as Réalisateur " +
      "FROM (Films LEFT JOIN Realisateurs ON " +
      "Films.idRealisateur=Realisateurs.idRealisateur) " +
      "LEFT JOIN Genres ON Films.idGenre=Genres.idGenre;");
  table.Load(reader);
  reader.Close();
  reader.Dispose();
  return table;
}


Merci à l'avance

5 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Il est bizzare ton DataGridView, j'en ai poser un et il fonctionne bien. tu est sûr que ta colonne ne serais en en mode "Figé" dans la conf des colonnes (fenêtre de propriété)


Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Salut

Exemple : DGView.Columns[0].Width

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
12 juin 2010
1
C'est gentil d'avoir essayer, mais comme j'ai dit plus haut: je ne peux pas accéder à la propriété Columns du DGV et par conséquent, à la propriété Width. Est-ce parce que je lui donne une DataTable comme DataSource?

J'ai remarqué que je pouvais par contre accéder à la propriété Columns de ma DataTable avant de la passer au DGV, mais celle-ci ne semble pas avoir la propriété Width. Une autre idée?
Messages postés
9
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
12 juin 2010
1
Je suis extrêmement désolé cboulas. Le truc, c'est que j'ai pris le début de projet ici, sur Codes Sources et j'ai simplement supposé certaines choses.
Le DataGridView énoncé dans mon problème n'en était pas un. C'est simplement un DataGrid, voilà pourquoi il me "manquait" des propriétés.

Je te remercie de ton temps et j'aimerais te dire que c'est ta 2e intervention qui m'a fait trouver la solution.

Juste comme ça, pourrais-tu me dire s'il y a des avantages à utiliser un simple DataGrid?
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Le dataGrid on dira (juste pour simmplifier) que cela ressemble à un dataset, on l'utilise beaucoup en webform (page web).

Le datagrid existait dans le framework 1, 1.1... mais plus vraiment depuis le fram 2.0, il a été remplacer par le datagridview, qui comme le dit le nom : reflette une vue de ta requette et non plus un traitement possible à faire dedant.

Je me suis douter de ton pb, d'où pourquoi j'ai noter en toute lettre le datagridView

Disons que en Winform, il faut retenir le datagridview et en webform le GridView qui est quasiement la même chose

Heureux que cela t'a servie

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT