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 :

[VB.NET] DatagridView et comboboxcell


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut [VB.NET] DatagridView et comboboxcell
    Salut à tous,

    J'ai un petit soucis avec un datagridview.
    A l'ouverture de mon formulaire, je créé mon datagridview. Je lui précise son datasource, son nombre de colonnes etc.
    Je souhaite que l'une des colonnes soit un comboboxcell.
    J'ai créé un DataGridViewComboBoxCell, à qui j'ai mis comme datasource la source que je voulais.
    Ensuite, je souhaite "attribuer" ce DataGridViewComboBoxCell à l'une de mes colonnes de mon datagridview. Et ça, je ne sais pas comment faire.

    Quelqu'un sait ?

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    ben tu créer un DataGridViewComBoxColumn et tu l'ajoute à la collection de colonnes de ton datagridview

  3. #3
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut
    Oui, ça je peux faire.
    Mais comme mon datagridview est basé sur un dt, j'aimerais en ce cas que la colonne que j'ajoute à ma collection affiche les données d'une des colonnes de mon dt ...
    D'où l'idée non pas d'ajouter une nouvelle colonne à ma collection, mais à préciser à une des colonnes existantes qu'elle est censée s'afficher comme un comboboxcell et non pas comme un textboxcell ...
    Vois-tu ?

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    ton datagridView, tu le créer comment ?
    - en mode design ? dans ce cas, tu peux très bien lui dire qu'une des colonnes doit être une ComBoxColumn (SMartTag --> Edit Column)

    - par programmation ? Ben là pareil, quand tu créer ton DataGridView, tu peut spécifier quelle colonne est de quel type, même si don datagridview est lié à une DataTable

  5. #5
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut
    Citation Envoyé par guitoux1
    - par programmation ? Ben là pareil, quand tu créer ton DataGridView, tu peut spécifier quelle colonne est de quel type, même si don datagridview est lié à une DataTable
    Justement, c'est ce que je ne sais pas faire. Je ne sais pas, une fois que j'ai précisé la source de mon datagridview, lui spécifier que telle colonne est de tel type.

    Peux-tu m'indiquer la propriété ? Ou la manière ?

  6. #6
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    OK, voici un exemple de code que j'utilise pour créer un datagridview par programmation :


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    private void BindGrid()
    {
    	gvOperations.DataSource = BindingSourceOperations;
    	gvOperations.Update();
    }
     
    private void SetupGrid()
    {
    	//
    	// DataGridView
    	//
    	gvOperations = new DataGridView();
    	gvOperations.Name = "gvOperations";
    	gvOperations.EditMode = DataGridViewEditMode.EditProgrammatically;
    	gvOperations.AllowUserToOrderColumns = false;
    	gvOperations.AllowUserToDeleteRows = false;
    	gvOperations.AllowUserToAddRows = false;
    	gvOperations.AllowUserToResizeRows = false;
    	gvOperations.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
    	gvOperations.AlternatingRowsDefaultCellStyle.BackColor = SystemColors.InactiveCaptionText;
    	gvOperations.AutoGenerateColumns = false;
    	gvOperations.DataSource = BindingSourceOperations;
    	gvOperations.MultiSelect = false;
    	gvOperations.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    	gvOperations.VirtualMode = true;
    	gvOperations.RowHeadersVisible = false;
    	gvOperations.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
     
    	gvOperations.CellValueNeeded += new DataGridViewCellValueEventHandler(SetColors);
    	gvOperations.DefaultCellStyle = defaultStyle; // style créé ailleur...
     
    	//
    	// Image +/- pour visualisation des ventilations
    	//
    	DataGridViewImageColumn colVentilations = new DataGridViewImageColumn();
    	colVentilations.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
    	colVentilations.HeaderText = "V";
    	colVentilations.Name = "HasVentilations";
    	colVentilations.ReadOnly = true;
    	colVentilations.DefaultCellStyle.NullValue = null;
    	gvOperations.CellValueNeeded += new DataGridViewCellValueEventHandler(colVentilations_CellValueNeeded);
    	gvOperations.CellContentClick += new DataGridViewCellEventHandler(gvOperations_CellContentClick);
    	gvOperations.CellValueChanged += new DataGridViewCellEventHandler(gvOperations_CellValueChanged);
    	gvOperations.Columns.Add(colVentilations);
     
    	//
    	// Opération pointée oui/non
    	//
    	DataGridViewCheckBoxColumn colPointee = new DataGridViewCheckBoxColumn();
    	colPointee.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
    	colPointee.DataPropertyName = "Checked";
    	colPointee.HeaderText = "P";
    	colPointee.Name = "Checked";
    	gvOperations.Columns.Add(colPointee);
     
            //
           // .. et ainsi de suite
           //
    }
    SetupGri() étant appelé dans le cronstructeur de mon userControl (car le datagridview est placé dans un usercontrol)

  7. #7
    Membre confirmé Avatar de boulete
    Profil pro
    Inscrit en
    Février 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2006
    Messages : 132
    Par défaut
    Citation Envoyé par guitoux1
    colPointee.DataPropertyName = "Checked";
    Cette ligne m'aurait suffit
    Mais c'est très gentil, je te remercie beaucoup.
    Elo

Discussions similaires

  1. [VB.NET][DataGridView]:couleur de fond d'une cellule
    Par BigTicket42 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/05/2008, 22h07
  2. [VB.NET] datagridview et sélection
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2006, 11h22
  3. [VB.NET] DataGridView à double entrée: comment faire?
    Par BillyboyK dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/04/2006, 09h06
  4. [vb.net] datagridview imbriqués, possible ou non?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/02/2006, 17h46
  5. [VB.NET] DataGridView et synchronisation avec une BD
    Par tidan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/02/2006, 11h12

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