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

VB.NET Discussion :

Insérer un textbox dans une colonne du datagridview


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut Insérer un textbox dans une colonne du datagridview
    Bonjour,

    Comment insérer un textbox dans une colonne du datagridview? J'ai testé ça mais ça n'a pas fonctionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim textbox1 As DataGridViewTextBoxCell = New DataGridViewTextBoxCell
     DataGridView1.Rows(2).Cells(1) = textbox1

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    Pour comprendre l'utilisation d'un composant il suffit d'aller voir l'aide MSDN.
    A la fin, tout en bas de l'article, il y a pratiquement toujours un exemple d'utilisation.

    Mais je pense que vous cherchez plutôt le DataGridViewTextBoxColumn .

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Dans mon cas j'ai des cellules contenant des TextBoxs et d'autres contenant du texte dans la même colonne. Si j'utilise le DataGridViewTextBoxColumn j'aurai des TextBoxs dans toute la colonne.

    Merci.

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Et quelle est l'erreur?

    Une petite recherche et j'ai trouvé cette discussion : https://stackoverflow.com/questions/...es-to-a-column

    J'ai testé un code proposé et cela fonctionne parfaitement :
    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
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Dim dt As DataTable = New DataTable()
            dt.Columns.Add("name")
            For j As Integer = 0 To 10 - 1
                dt.Rows.Add("")
            Next
     
            Me.DataGridView1.DataSource = dt
            Me.DataGridView1.Columns(0).Width = 200
            Dim ComboBoxCell As DataGridViewComboBoxCell = New DataGridViewComboBoxCell()
            ComboBoxCell.Items.AddRange(New String() {"aaa", "bbb", "ccc"})
            Me.DataGridView1(0, 0) = ComboBoxCell
            Me.DataGridView1(0, 0).Value = "bbb"
            Dim TextBoxCell As DataGridViewTextBoxCell = New DataGridViewTextBoxCell()
            Me.DataGridView1(0, 1) = TextBoxCell
            Me.DataGridView1(0, 1).Value = "some text"
            Dim CheckBoxCell As DataGridViewCheckBoxCell = New DataGridViewCheckBoxCell()
            CheckBoxCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
            Me.DataGridView1(0, 2) = CheckBoxCell
            Me.DataGridView1(0, 2).Value = True
     
            Dim dtp As DateTimePicker = New DateTimePicker()
            dtp.Value = DateTime.Now.AddDays(-10)
            Me.DataGridView1.Controls.Add(dtp)
            dtp.Location = Me.DataGridView1.GetCellDisplayRectangle(0, 3, True).Location
            dtp.Size = Me.DataGridView1.GetCellDisplayRectangle(0, 3, True).Size
        End Sub
    C'est pour pouvoir éditer certaines cellules et pas d'autres?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Est-il possible d'avoir quelque chose comme ça dans un datagridview:

    Nom : Capture.PNG
Affichages : 1934
Taille : 4,8 Ko

    Merci pour votre réponse.

  6. #6
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par hanadakia Voir le message
    Est-il possible d'avoir quelque chose comme ça dans un datagridview:
    Comme son nom l'indique, le DataGridView a pour but d'afficher des données dans une grille. Ce que tu semble vouloir c'est afficher des contrôles (TextBox par exemple) sous forme de grille. Dans ce cas regarde du côté de TableLayoutPanel s'il ne correspondrait pas plus à ton besoin. Après, il est sûrement possible d'arriver à tes fins sur le DataGridView en dessinant les contrôles "à la mano", mais c'est beaucoup s'embêter pour pas grand chose (fonctionnellement c'est la même chose qu'une cellule éditable)

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Je vais essayer avec le TableLayoutPanel. Merci pour vos réponses.

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Comme son nom l'indique, le DataGridView a pour but d'afficher des données dans une grille.
    Oui et non, on peut très bien s'en servir pour éditer les données aussi. On peut y mettre différent style de colonne :
    • System.Windows.Forms.DataGridViewButtonColumn
    • System.Windows.Forms.DataGridViewCheckBoxColumn
    • System.Windows.Forms.DataGridViewComboBoxColumn
    • System.Windows.Forms.DataGridViewImageColumn
    • System.Windows.Forms.DataGridViewLinkColumn
    • System.Windows.Forms.DataGridViewTextBoxColumn

  9. #9
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par @Sankasssss
    Oui et non, on peut très bien s'en servir pour éditer les données aussi. On peut y mettre différent style de colonne
    Ah, effectivement, je raconte des bêtises désolé

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 16
    Points
    16
    Par défaut
    Je comprends le sens de la réponse de ZenZitone.

    Parce que dans une même colonne, je voulais avoir des combobox puis des checkbox. Mais d'après ce que j'avais compris de la doc Microsoft, cela n'était pas possible. Toute la colonne est soit d'un type soit de l'autre, pas de panachage possible.

    Du coup, comme le dit ZenZitone, j'étais passé par un tablelayoutpanel. (ou alors je me suis trompé moi aussi!).

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Non pas vous ne vous trompez pas "réellement" car ce composant est bien fait à la base pour qu'une colonne soit typée. On le voit d'ailleurs dans le type des colonnes, ex : DataGridViewCheckBoxColumn.
    Dans le cas de votre copie écran :
    Nom : Capture.PNG
Affichages : 1934
Taille : 4,8 Ko
    Cela était différent car à première vue les colonnes avaient toutes le même type, c'était du texte qui y était stocké.

    Le DataGridView est fait pour y mettre des données sous forme de table et surtout, un nombre de donnée variable.

    Mais comme je l'ai marqué précédemment #4 il y a moyen de changer ce type d'utilisation pour mettre des types différents au sein d'une même colonne même si ce n'est pas son usage normal.

    Avec votre exemple je dirais que vous cherchez plus à mettre en forme l'interface avec des éléments fixes. Et là, comme l'a dit ZenZiTone, le TableLayoutPanel est bien plus adapté. C'est son rôle.

Discussions similaires

  1. [XL-2007] Valeur textbox dans une colonne de longueur variable
    Par luko6 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2009, 14h42
  2. Insérer plusieurs valeurs dans une colonne
    Par hadjiphp dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2009, 03h14
  3. Réponses: 5
    Dernier message: 24/08/2008, 22h25
  4. Réponses: 1
    Dernier message: 26/10/2007, 18h57
  5. Insérer un paragraphe dans une colonne
    Par usf70 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 07/01/2007, 17h06

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