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 :

DatagridView auto et colonne type DateTime (calendar)


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut DatagridView auto et colonne type DateTime (calendar)
    Bonjour,
    sur ce lien : http://msdn2.microsoft.com/fr-fr/library/7tas5c80.aspx

    est expliqué comment faire pour créé une colonne de type 'calendar'. Mais d'apres ce que je vois le formattage d'une colonne dans l'exemple montre comment faire avec un datagridview construit manuellement.

    Mais comment faire lorsque le datagridview est construit en automatique par exemple avec un dataset. ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    Est en surchargeant la méthode 'oncolumnadded' et en détectant le type retourné par la requête (est ce possible ?) que je pourrai arriver à mes fins ?

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Bah normalement, tu as tout de même les colonnes dans le designer, non ?
    Tu ne génères pas automatiquement le colonnes quand même ?

    Tu peux modifier le type de colonne dans le designer, pour utiliser ton propre type plutot que les types de colonne prédéfinis.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    Bah je n'utilise pas le designer en fait, car mon datagridview peut être alimenté par plusieures requettes (ça depend de ce que veut afficher l'utlisateur), qui ne vont pas taper dans les mêmes tables,n'affichent pas les mêmes champs, pas le meme nombre de colonnes, etc...
    C'est pour ça que j'ai choisit la construction se faire automatiquement.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    ET y a t'il un moyen d'intercepter une création de colonne avant Qu'elle ne soit créé ? Car si je ne me trompe pas l'evenement OnColumnAdded est lancé apres non ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    En fait j'ai résolu mon probleme grace à un post anglais de Zhi-Xin Ye - MSFT ici : http://forums.microsoft.com/MSDN/Sho...58648&SiteID=1

    j'ai modifié le code, pour que cette gestion se fasse directement dans la classe de mon controle.
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
     
            {..}
    en :
    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
            protected override void OnCellBeginEdit(DataGridViewCellCancelEventArgs e)
            {
                base.OnCellBeginEdit(e);
                DataSet d = new DataSet();
                d = (DataSet)this.DataSource;
                //on veridie le type de la colonne et on met le controle adequat
                if (d.Tables[0].Columns[e.ColumnIndex].DataType.ToString() == "System.DateTime")
                {
                    this.Columns[e.ColumnIndex].Width = this.dpt.Width;
                    this.dpt.Location = this.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Location;
                    this.dpt.Size = this.CurrentCell.Size;
                    this.dpt.Value = (DateTime)this[e.ColumnIndex, e.RowIndex].Value;
                    this.dpt.Visible = true;
                }
     
            }
    Et en oubliant pas d'ajouter le controle DateTimePicker dans le datagridview à sa création, sinon le datetimeick il apparait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            public MonDataGridView()
            {
                dpt = new DateTimePicker();
                dpt.Visible = false;
                this.Controls.Add(dpt);
            }

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

Discussions similaires

  1. Modifier une colonne d'une table de type Datetime en production
    Par jsylvestre dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/03/2015, 11h16
  2. Intervalle de type datetime avec colonnes date et time
    Par Madfrix dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/03/2011, 23h58
  3. Réponses: 3
    Dernier message: 12/03/2009, 14h41
  4. Colonne de type Datetime
    Par Cedric33 dans le forum Langage SQL
    Réponses: 22
    Dernier message: 18/12/2008, 14h09
  5. requete vers une colonne de type datetime
    Par Zorgz dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2003, 12h37

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