Bonjour,
Comment insérer un textbox dans une colonne du datagridview? J'ai testé ça mais ça n'a pas fonctionné:
Code:
1
2 Dim textbox1 As DataGridViewTextBoxCell = New DataGridViewTextBoxCell DataGridView1.Rows(2).Cells(1) = textbox1
Merci d'avance.
Version imprimable
Bonjour,
Comment insérer un textbox dans une colonne du datagridview? J'ai testé ça mais ça n'a pas fonctionné:
Code:
1
2 Dim textbox1 As DataGridViewTextBoxCell = New DataGridViewTextBoxCell DataGridView1.Rows(2).Cells(1) = textbox1
Merci d'avance.
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 .
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.
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 :
C'est pour pouvoir éditer certaines cellules et pas d'autres?Code:
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
Bonjour,
Est-il possible d'avoir quelque chose comme ça dans un datagridview:
Pièce jointe 347177
Merci pour votre réponse.
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)
Je vais essayer avec le TableLayoutPanel. Merci pour vos réponses.
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
Ah, effectivement, je raconte des bêtises désolé :oops:Citation:
Envoyé par @Sankasssss
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!).
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 :
Pièce jointe 347177
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.