SetFlowBreak [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
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
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
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
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
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
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
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