La Combobox invisible ! [Résolu]

oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 22 juil. 2008 à 17:25 - Dernière réponse : oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention
- 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
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 22 juil. 2008 à 17:44
3
Merci
ComboBox1.Show()












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



/B>

Merci gillardg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de gillardg
Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 23 juil. 2008 à 08:39
3
Merci
ton controle est il bien placé ?
n'est-il pas sous un autre controle ?

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 09:09
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.

Merci oo7jb5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de oo7jb5
Meilleure réponse
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 10:37
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>

Merci gillardg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de gillardg
Meilleure réponse
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 13:07
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 !

Merci oo7jb5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

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

Merci oo7jb5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de oo7jb5
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 22 juil. 2008 à 19:59
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
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 08:13
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
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 08:43
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
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 14:37
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
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 14:41
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
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 15:01
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
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 juil. 2008 à 15:13
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
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 15:26
0
Merci
Oui, ben que sa passera vite avec un bon Vaccin ;) !
Commenter la réponse de oo7jb5
oo7jb5 45 Messages postés jeudi 8 mars 2007Date d'inscription 3 mars 2010 Dernière intervention - 23 juil. 2008 à 15:36
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.