COMBOXBOX IN DATAGRID VB.NET

Signaler
Messages postés
63
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
16 novembre 2007
-
Messages postés
2
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
28 juin 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34549-comboxbox-in-datagrid-vb-net

Messages postés
2
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
28 juin 2007

J'allais oublier. J'ai aussi sur la procédure :
Private Sub Control_PropertyChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Une exception non gérée du type 'System.StackOverflowException' lorsque je sélectionne une combo de la dernière ligne. Le programme boucle entre
Protected Overloads Overrides Sub Edit et
Control_PropertyChanged(ByVal sender As Object, ByVal e As System.EventArgs). Une solution propre?
Messages postés
2
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
28 juin 2007

Bonjour, vraiment intéressante cette source. Je l'ai testé et j'ai quelques bugs. Je ne sais pas si ça vient du code ou de ma config (vista pro, VS2005 pro). Donc je les ai corrigé.
- Protected Overloads Overrides Sub Edit : il faut ajouter If VarType(value) = VariantType.Null Then Exit Sub
- la première fois que l'on utilise la combo d'une colonne, la valeur ne se fixe pas dans la case. Avec le remplacement par ce code ci-dessous, ca fonctionne... (en tout cas chez moi)

Protected Overrides Function Commit(ByVal dataSource As CurrencyManager, ByVal rowNum As Integer) As Boolean
ctrl.Bounds = Rectangle.Empty
' Create an event handler for the bound property
Me.boundPropertyChangedEvent.AddEventHandler(ctrl, New EventHandler(AddressOf Control_PropertyChanged))

'If isEditing Then
If ctrl.Visible = True Then
isEditing = False
Try
' Retrieve the value of the bound property.
Dim value As Object = Me.boundProperty.GetValue(ctrl, Nothing)
' Use it as the value for this cell.
SetColumnValueAtRow(dataSource, rowNum, value)
Catch
' Ignore errors.
End Try
Invalidate()
ctrl.Visible = False
End If
Return True
End Function

Pouvez-vous me dire si ça donne les mêmes erreurs chez vous ? merci
Messages postés
1
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
29 mars 2007

Vraiment bien cette source, je ne savais pas comment faire et en fait c'est tout bête.
Merci.
Messages postés
2
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
14 juin 2006

Ah oui j'oubliais. Merci pinje pour la source. L'est intérressante =). Par contre je me demande si on est réellement obligé de passé par une classe externe pour crée une combobox...
Afficher les 9 commentaires