J'ai eu un colonne qui contient un combobox
mais celui ci se comporte seulement comme
une liste déroulante ou on doit choisir une valeur
dans la liste.
Je voudrai que l'utilisateur puisse proposer
une nouvelle donnée. il y a bien la proriété
displaystyle pour la colonne ou pour la cellule
mais je ne parviens pas au but.
merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles TOURREAU
Le Fri, 26 Oct 2007 15:35:09 +0200, PR a écrit:
J'ai eu un colonne qui contient un combobox mais celui ci se comporte seulement comme une liste déroulante ou on doit choisir une valeur dans la liste. Je voudrai que l'utilisateur puisse proposer une nouvelle donnée. il y a bien la proriété displaystyle pour la colonne ou pour la cellule mais je ne parviens pas au but. merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown End If
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le Fri, 26 Oct 2007 15:35:09 +0200, PR <prabier@bamboo.lu> a écrit:
J'ai eu un colonne qui contient un combobox
mais celui ci se comporte seulement comme
une liste déroulante ou on doit choisir une valeur
dans la liste.
Je voudrai que l'utilisateur puisse proposer
une nouvelle donnée. il y a bien la proriété
displaystyle pour la colonne ou pour la cellule
mais je ne parviens pas au but.
merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de
mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown
End If
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
J'ai eu un colonne qui contient un combobox mais celui ci se comporte seulement comme une liste déroulante ou on doit choisir une valeur dans la liste. Je voudrai que l'utilisateur puisse proposer une nouvelle donnée. il y a bien la proriété displaystyle pour la colonne ou pour la cellule mais je ne parviens pas au but. merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown End If
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
PR
Merci de votre réponse. J'ai un peu approfondi la question et comme il me semble que ce problème est très fréquent et intéressera bcp de monde voici ma solution:
'g est mon datagridview 'j'ai rajouté sorted 'on traite 2 évènements Private Sub g_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles g.EditingControlShowing
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
' cb_ec représente le combobox hébergé dans DataGridViewComboBoxCell.
Dim cb_ec As DataGridViewComboBoxEditingControl = e.Control
Private Sub g_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles g.CellValidating
If TypeOf (sender.EditingControl) Is DataGridViewComboBoxEditingControl Then
Dim cb_ec As DataGridViewComboBoxEditingControl = sender.EditingControl
'la validation affecte cb_ec
If Not cb_ec Is Nothing Then
Dim grid As DataGridView = cb_ec.EditingControlDataGridView
'la grille qui contient cb_ec
If cb_ec.Text = "" Then
'on n'accepte pas un item vide
Else
Dim value As Object = cb_ec.Text
If cb_ec.Items.IndexOf(value) = -1 Then
'cb_ec.Items.Add(value)
cb_ec.Items.Insert(0, value)
Dim cb_ec_Col As DataGridViewComboBoxColumn = grid.Columns(grid.CurrentCell.ColumnIndex)
If Not cb_ec_Col Is Nothing Then
cb_ec_Col.Items.Add(value)
End If
Else
End If
grid.CurrentCell.Value = value
End If
Else
End If
Else
'ce n'est pas un dgvComboBoxEditingControl
End If
je me suis beaucoup inspiré de ' http://entwickler-forum.de/showthread.php?p8060#post138060
mais je ne comprends pas le pourquoi du Ctype de la 2ème ligne après la 1ère :
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
Dim cmb As DataGridViewComboBoxEditingControl = CType(e.Control, DataGridViewComboBoxEditingControl)
et non pas
Dim cmb As DataGridViewComboBoxEditingControl = e.Control
PRVB6
"Gilles TOURREAU" a écrit dans le message de news:
Le Fri, 26 Oct 2007 15:35:09 +0200, PR a écrit:
J'ai eu un colonne qui contient un combobox mais celui ci se comporte seulement comme une liste déroulante ou on doit choisir une valeur dans la liste. Je voudrai que l'utilisateur puisse proposer une nouvelle donnée. il y a bien la proriété displaystyle pour la colonne ou pour la cellule mais je ne parviens pas au but. merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown End If
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Merci de votre réponse.
J'ai un peu approfondi la question et comme il me semble que ce problème
est très fréquent et intéressera bcp de monde
voici ma solution:
'g est mon datagridview
'j'ai rajouté sorted
'on traite 2 évènements
Private Sub g_EditingControlShowing(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles
g.EditingControlShowing
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
' cb_ec représente le combobox hébergé dans DataGridViewComboBoxCell.
Dim cb_ec As DataGridViewComboBoxEditingControl = e.Control
Private Sub g_CellValidating(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles
g.CellValidating
If TypeOf (sender.EditingControl) Is DataGridViewComboBoxEditingControl Then
Dim cb_ec As DataGridViewComboBoxEditingControl = sender.EditingControl
'la validation affecte cb_ec
If Not cb_ec Is Nothing Then
Dim grid As DataGridView = cb_ec.EditingControlDataGridView
'la grille qui contient cb_ec
If cb_ec.Text = "" Then
'on n'accepte pas un item vide
Else
Dim value As Object = cb_ec.Text
If cb_ec.Items.IndexOf(value) = -1 Then
'cb_ec.Items.Add(value)
cb_ec.Items.Insert(0, value)
Dim cb_ec_Col As DataGridViewComboBoxColumn =
grid.Columns(grid.CurrentCell.ColumnIndex)
If Not cb_ec_Col Is Nothing Then
cb_ec_Col.Items.Add(value)
End If
Else
End If
grid.CurrentCell.Value = value
End If
Else
End If
Else
'ce n'est pas un dgvComboBoxEditingControl
End If
je me suis beaucoup inspiré de '
http://entwickler-forum.de/showthread.php?p8060#post138060
mais je ne comprends pas le pourquoi du Ctype de la 2ème ligne après la 1ère
:
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
Dim cmb As DataGridViewComboBoxEditingControl = CType(e.Control,
DataGridViewComboBoxEditingControl)
et non pas
Dim cmb As DataGridViewComboBoxEditingControl = e.Control
PRVB6
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
op.t0uxaqmwr4w555@bureau1.pos.fr...
Le Fri, 26 Oct 2007 15:35:09 +0200, PR <prabier@bamboo.lu> a écrit:
J'ai eu un colonne qui contient un combobox
mais celui ci se comporte seulement comme
une liste déroulante ou on doit choisir une valeur
dans la liste.
Je voudrai que l'utilisateur puisse proposer
une nouvelle donnée. il y a bien la proriété
displaystyle pour la colonne ou pour la cellule
mais je ne parviens pas au but.
merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de
mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown
End If
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Merci de votre réponse. J'ai un peu approfondi la question et comme il me semble que ce problème est très fréquent et intéressera bcp de monde voici ma solution:
'g est mon datagridview 'j'ai rajouté sorted 'on traite 2 évènements Private Sub g_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles g.EditingControlShowing
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
' cb_ec représente le combobox hébergé dans DataGridViewComboBoxCell.
Dim cb_ec As DataGridViewComboBoxEditingControl = e.Control
Private Sub g_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles g.CellValidating
If TypeOf (sender.EditingControl) Is DataGridViewComboBoxEditingControl Then
Dim cb_ec As DataGridViewComboBoxEditingControl = sender.EditingControl
'la validation affecte cb_ec
If Not cb_ec Is Nothing Then
Dim grid As DataGridView = cb_ec.EditingControlDataGridView
'la grille qui contient cb_ec
If cb_ec.Text = "" Then
'on n'accepte pas un item vide
Else
Dim value As Object = cb_ec.Text
If cb_ec.Items.IndexOf(value) = -1 Then
'cb_ec.Items.Add(value)
cb_ec.Items.Insert(0, value)
Dim cb_ec_Col As DataGridViewComboBoxColumn = grid.Columns(grid.CurrentCell.ColumnIndex)
If Not cb_ec_Col Is Nothing Then
cb_ec_Col.Items.Add(value)
End If
Else
End If
grid.CurrentCell.Value = value
End If
Else
End If
Else
'ce n'est pas un dgvComboBoxEditingControl
End If
je me suis beaucoup inspiré de ' http://entwickler-forum.de/showthread.php?p8060#post138060
mais je ne comprends pas le pourquoi du Ctype de la 2ème ligne après la 1ère :
If (TypeOf e.Control Is DataGridViewComboBoxEditingControl) Then
Dim cmb As DataGridViewComboBoxEditingControl = CType(e.Control, DataGridViewComboBoxEditingControl)
et non pas
Dim cmb As DataGridViewComboBoxEditingControl = e.Control
PRVB6
"Gilles TOURREAU" a écrit dans le message de news:
Le Fri, 26 Oct 2007 15:35:09 +0200, PR a écrit:
J'ai eu un colonne qui contient un combobox mais celui ci se comporte seulement comme une liste déroulante ou on doit choisir une valeur dans la liste. Je voudrai que l'utilisateur puisse proposer une nouvelle donnée. il y a bien la proriété displaystyle pour la colonne ou pour la cellule mais je ne parviens pas au but. merci
PRVB6
Traitez l'événement EditingControlShowing de votre DataGridView afin de mettre DropDownStyle à "DropDown" :
If (TypeOf e.Control Is ComboBox) Then
Dim cb As ComboBox
cb = CType(e.Control, ComboBox)
cb.DropDownStyle = ComboBoxStyle.DropDown End If
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr