La Combobox invisible ! [Résolu]

Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
- - Dernière réponse : oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
- 29 juil. 2008 à 10:26
Bonjour,
Je suis en train de réaliser une application (codée en Vb.net sous visual studio 2008), cette dernière est divisée en trois couches (DAL, DAO et interface). Dans l'interface, j'ai une datagridview qui me permet d'afficher des lignes d'une table de ma base de données,  ainsi je souhaite pouvoir modifier ces données. Pour mettre à jour les données de ma table, je veux créer autant de textbox, combobox ... que de colonne. Les combobox étant utilisée afin d'afficher des valeures imposées. J'ai réussi à créer autant de textbox que de colonnes du datagridview. Cependant pour ce qui est des combobox (valeures fixées dépendantes d'autres tables), je les ai crées directement dans l'interface et je les ai cachées avec la fonction visiblefalse dans la form_load. Mon problème est le suivant lorsque je recherche les combobox que je dois afficher (visibletrue), ces dernières ne s'affichent pas. La variable visible reste à false !

Voici le code :
------------------------------------------------------------------------------------------------------------------------------------
'Déclaration de la variable permettant de récupérer un controle correspondant à une colonne de la table.
Dim controlFound As System.Windows.Forms.ComboBox = Nothing
            controlFound = CType(Controls.Item(datagridV.Columns(datagridV.CurrentRow.Cells(i).ColumnIndex).HeaderText), ComboBox)

            'Si on trouve un controle correspondant
            If (controlFound IsNot Nothing) Then
                controlFound.Visible = True
            Else
             [----]
------------------------------------------------------------------------------------------------------------------------------------
Les contrôles sont bien détectés à chaque fois mais n'apparaissent pas dans l'interface. Pouvez-vous m'aider à résoudre mon problème, j'ai tenté beaucoup de choses mais sans succès. Merci d'avance.

Julien
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Dernière intervention
14 septembre 2014
17
3
Merci
ComboBox1.Show()












Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur



/B>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de gillardg
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
3
Merci
ton controle est il bien placé ?
n'est-il pas sous un autre controle ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
3
Merci
Bon eh bien je viens de trouver une solution, je ne sais pas pourquoi mais apparemment il faut que je mettes tous les combobox que je veux cacher au début de ma fonction qui parcourt ma Datagrid afin de créer et afficher mes textbox et combobox. Ensuite je peux enfin afficher comme je l'entends mes éléments. C'est vraiment bizarre que cela marche comme cela et pas comme avant.

Mon code est donc le suivant maintenant :
--------------------------------------------------------------------------------
Public Sub CreateTextBox(ByVal datagridV As DataGridView)

SysID.Visible = False
SubFamID.Visible = False
MayID.Visible = False
CttID.Visible = False
MatID.Visible = False
LanID.Visible = False
EqmID.Visible = False
FamID.Visible = False

Dim top, i As Integer
Dim numeroTextBox As Integer
Dim textBoxName, labelName As String

top = 100

numeroTextBox = 1

For i = 0 To datagridV.ColumnCount - 1
Dim controlFound As System.Windows.Forms.ComboBox = Nothing
controlFound = CType(Controls.Item(datagridV.Columns(datagridV.CurrentRow.Cells(i).ColumnIndex).HeaderText), ComboBox)

'Si un controle a été trouvé, on le fait apparaitre
If (controlFound IsNot Nothing) Then
controlFound.Visible = True
Else
'Création des textBox et labels
Dim tbox As New System.Windows.Forms.TextBox()
Dim label As New System.Windows.Forms.Label()

'Remplissage du label et du textbox
labelName = "Label" & numeroTextBox
textBoxName = "TextBox" & numeroTextBox
label.Name = labelName
tbox.Name = textBoxName
tbox.Text = datagridV.CurrentRow.Cells(i).Value.ToString
label.Text = datagridV.Columns(datagridV.CurrentRow.Cells(i).ColumnIndex).HeaderText

'Ajout des controles à la forme
Controls.Add(label)
Controls.Add(tbox)

'Paramètrage de la position des éléments (textbox et label)
With label
.Visible = True
.Top = top + 2 'distance entre le bord de la fenetre et le bord du conteneur
.Left = 5 'distance entre le bord gauche de la fenetre et le bord du conteneur
.Width = 120 'la largeur de l'objet
End With

With tbox
.Visible = True
.Top = top 'distance entre le bord de la fenetre et le bord du conteneur
.Left = 160 'distance entre le bord gauche de la fenetre et le bord du conteneur
.Width = 130 'largeur de l'objet
.Height = 275 'hauteur de l'objet
End With

top = top + 50
numeroTextBox = numeroTextBox + 1

End If

Next

End Sub
------------------------------------------------------------------------------

Voila je l'ai mis en entier si jamais cela peut aider quelqu'un. En tout cas, merci quand même pour votre aide, si quelqu'un sait pourquoi cela ne marchait pas avant, je suis curieux de connaitre l'explication.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de oo7jb5
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Dernière intervention
14 septembre 2014
17
3
Merci
chez moi ça fonctionne très bien

Private
Sub Form1_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.ClickComboBox1.Visible =

True

End
Sub

Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.LoadComboBox1.Visible =

False

End
Sub

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de gillardg
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
3
Merci
Oui c'est vraiment bizarre car là je viens de refaire le code sur une autre forme et là miracle : tout fonctionne ! On dira que c'était un bug passager de Visual Studio ! Merci pour votre aide !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
3
Merci
Mon problème est résolu malgrès que je ne comprenne toujours pas certains bugs. Bref merci de votre aide.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Merci, je vais tester cela demain matin car là j'ai pas le code sur moi. Bonne soirée et @+.
Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Bonjour,

J'ai essayé comme tu m'as dit gillardg mais cela ne marche toujours pas, ma combobox n'apparait toujours pas. Si tu as une autre solution, je suis preneur. Merci déjà pour l'aide que tu m'as apporté.

Ce que je ne comprends pas, c'est que lorsque j'execute en mode debug en pas à pas, controlFound.Visible = True ne passe jamais à True, il semble comme figé à False, de plus si j'essaye de le modifier grâce au débuggeur et bien là encore c'est un échec. Je ne comprends vraiment pas.
Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Mon contrôle est sur ma form, il n'y a rien d'autre, alors je ne penses pas qu'il soit caché par un autre élément, d'ailleurs si je les affiches du début et bien je n'ai aucun problème. Je viens de ressayer en les cachant avec la fonction Hide dans le formload puis en utilisant show pour les faire apparaitre mais rien n'y fait.
Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Décidément c'est pas ma journée... j'ai encore un bug bizarre avec l'une de mes combobox. J'ai donc plusieurs combobox qui apparaissent correctement, mon soucis maintenant et que je n'arrivent pas à sélectionner le texte sélectionné dans deux de mes combobox. Pourtant la première, j'arrive très bien à récupérer mais les deux autres, il me retourne rien !

Je ne comprends pas car j'utilise la fonction combobox.selectedText, et cela marche pour la première mais pas pour les autres. J'ai même essayer d'utiliser la fonction combobox.selectedValue. Je ne sais pas si c'est moi qui ne comprend rien ou si l'ordinateur qui en fait qu'à sa tête mais là je suis à court d'idées.. Donc si une âme charitable pourrait m'aider, j'en serais ravi. Merci d'avance !
Commenter la réponse de oo7jb5
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Dernière intervention
14 septembre 2014
17
0
Merci
est ce que tu as un antivirus??

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>
Commenter la réponse de gillardg
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Oui, Norton Antivirus est installé sur mon post ! Je vais lancer un scan mais bon j'ai rien télécharger (ordinateur de travail..)
Commenter la réponse de oo7jb5
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Dernière intervention
14 septembre 2014
17
0
Merci
oh ben parfois tu vas juste sur une page et hop tu chopes une grippe(pas toi ,ton pc)

Il n'y a que les gens qui ne font rien, qui ne font pas d'erreur

/B>
Commenter la réponse de gillardg
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Oui, ben que sa passera vite avec un bon Vaccin ;) !
Commenter la réponse de oo7jb5
Messages postés
45
Date d'inscription
jeudi 8 mars 2007
Dernière intervention
3 mars 2010
0
Merci
Mauvaise nouvelle ou bonne... tout dépend.. J'ai pas de virus ou plutôt aucun virus n'a été détecté ! Bon allez je vais continuer de plancher la dessus. Merci pour ton aide gillardg.
Commenter la réponse de oo7jb5

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.