SetFlowBreak

Résolu
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 5 déc. 2011 à 10:44
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 6 déc. 2011 à 22:36
Bonjour,

Je pense qu'il y a un concept de base que je ne comprends pas bien.
Le bouton 3 ne marche pas (voir code).

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        FlowLayoutPanel1.SetFlowBreak(Button10, True)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        FlowLayoutPanel1.SetFlowBreak(Button16, True)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        For i = 0 To 24
            FlowLayoutPanel1.SetFlowBreak(Button & i, False)
        Next
End Sub


Bien sur avec les lignes suivantes dans le bouton 3, cela marche:

        FlowLayoutPanel1.SetFlowBreak(Button10, False)
        FlowLayoutPanel1.SetFlowBreak(Button16, False)


Mais, j'aimerais generaliser (type 'System.Windows.Forms.Button').
Dois-je utiliser: For Each TypeOf (Button) In Controls, ou quelquechose comme ca?
Bref, c'est pas clair pour moi.

Un indice, un lien ou un bout de code serait le bien venu si toutefois c'est possible.

Merci,
JLuc01

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 déc. 2011 à 10:57
salut
Tu m'étonnes !
dans ce que tu as écrit :
FlowLayoutPanel1.SetFlowBreak(Button & i, False)

Button serait un contrôle et i un integer !
Et ce n'est pas Button, donc, mais son nom "Button" qu'il te faut utiliser, dans la collection controls
controls("Button" + i)

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
5 déc. 2011 à 20:15
Bonjour,

Si ce n'est pas fait actives Option Strict et Option Explicit.
Ensuite, pour completer Ucfoutu :
Il faut utiliser le Controls du conteneur du bouton (Panel, GroupBox, Form, ... )

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
6 déc. 2011 à 22:14
Bonsoir,

Desole pour cette reponse tardive.
Premierement, c'est tout a fait vrai, j'aurais du ecrire:
For i = 0 To 24
      FlowLayoutPanel1.SetFlowBreak("Button" & i, False)
Next

Cela parait plus logique.

Pas bien sur de comprendre la difference entre & et +, mais normalement, les 2 methodes devraient marcher.
Quoi que...

Pour info, j'ai mis Option Strict ON.

Cependant, le probleme n'ai pas encore resolu.
J'ai l'erreur suivante sur SetFlowBreak("Button" + i, False):
[*] Option Strict On disallows implicit conversions from 'String' to 'Double'

Ou bien l'erreur suivante sur SetFlowBreak("Button" & i, False):
[*] Value of type 'String' cannot be converted to System.Windows.Forms.Control

Je prefere le deuxieme message d'erreur, mais cela ne resoud pas mon probleme. Bref, je ne comprends pas.
J'avoue que pour moi comprendre les messages d'erreur, cela peut etre un vrai challenge.

Merci encore pour votre aide,
JLuc01
0
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
6 déc. 2011 à 22:23
Encore bonsoir,

J'ai relu vos 2 messages plus attentivement. Et en fait, j'ai essaye de nouveau cela:
For i = 0 To 24
       FlowLayoutPanel1.SetFlowBreak(Controls("Button" & i), False)
Next


Cela semble nettement mieux, mais quand j'essaye, j'ai l'erreur suivante:
[*] Object reference not set to an instance of an object.

Je ne dois pas etre bien loin.
A+

JLuc01
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
6 déc. 2011 à 22:23
Bonjour,

Regardes le message de UcFoutu.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
6 déc. 2011 à 22:27
Bonjour,

Dans ce cas, je me cite :
"Ensuite, pour completer Ucfoutu :
Il faut utiliser le Controls du conteneur du bouton (Panel, GroupBox, Form, ... )"

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
6 déc. 2011 à 22:36
Merci, j'ai finalement compris.
En fait, je comprends vite, mais il faut m'expliquer longtemps.

For i = 1 To 24
      FlowLayoutPanel1.SetFlowBreak(FlowLayoutPanel1.Controls("Button" & i), False)
Next


Merci a vous deux.

JLuc01
0
Rejoignez-nous