Déclaration tableau de control [Résolu]

Signaler
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour ,

       Est-ce qu'il est possible de déclarer dans le designer de la form ( MaForm.Designer.vb)  des controls qui a le même nom et qu'on manipule comme un tableau de control ?
Un peut comme en vb6 pour l'exemple ci dessous :

Begin VB.TextBox Txt
         Height          =   315
         Index           =   10
         Left            =   5580
         TabIndex        =   25
         Top             =   1500
         Width           =   1695
      End
      Begin VB.TextBox Txt
         Height          =   315
         Index           =   11
         Left            =   5580
         TabIndex        =   24
         Top             =   1860
         Width           =   1695
      End
      Begin VB.TextBox Txt
         Height          =   315
         Index           =   12
         Left            =   5580
         TabIndex        =   23
         Top             =   2220
         Width           =   1695
      End
     
Ensuite tu les appele txt(2) , ou txt(1) ?
en passant je suis avec vb .net  , framework 3.5
merci d'avance

 

17 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
salut,

NON !

il n'y a pas de groupe de contrôles en VB.NET, donc même pas la peine de tenter de renommer manuellement les contrôles du designer de VB.NET à la sauce VB6, hormis pour le simple plaisir de foirer ton projet

utilise les tableaux ou collections (voir forum + sources)

ps : aucun rapport avec le multi-thread :)
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Je vois plus le problème: Dans le dernier exemple de control des codes source, je remplace la class Form1 par:

Public

Class Form1

Dim Exemple
As
New List(
Of Surf)

Private
Sub Form1_Shown(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Shown

For i = 1
To 4Exemple.Add(

New Surf)

Next

For i = 1
To 4Exemple.Item(i - 1).Text =

"Mon site Rouille Nø" & iExemple.Item(i - 1).init()

Exemple.Item(i - 1).Show()

Next

End
SubEnd

Class
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Il suffit de les placer dans des threads différents.
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Ah! Je suis bien content que quelqu'un connait les Threads?

J'aimerais modifier mes paramètres d'affichage quand j'enfonce où que je relache le bouton de la souris. 
Friend Sub OnMouseDown() Handles Toile.MouseDown
        Mouvement.Run()
    End Sub
ca va bien Jusque 


 Dim Mp As Point 
 Mp = Mouse.GetPosition(Scene.Dock)
Dock est un panel et Scene la window.


Le compilateur me dit:
  Le thread appelant doit être en mode STA, comme l’exigent de nombreux composants de l’interface utilisateur.

Comment je fais pour mettre la position de la souris dans le même thread que les boutons?
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

Mais pour le tableau ou collection , on peut caller un même événement pour toute la collection de même type de controle ?
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

C'est une solution: Ils s'appelleront tous "item". Mais ils auront pas le même numéro.
Faudrait essayer shared, et faire une collection d'instances du même type. Qui sait?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
[../auteur/LONDONIC/1587157.aspx Londonic]

-> inutile de polluer le forum tant en posant des questions sur les topics des autres qu'en répondant n'importe quoi. tu m'as déjà demandé de faire le ménage dans tes participations (71 quand même!), à toi maintenant de te modérer seul stp!



[../auteur/JEE0404/364780.aspx jee0404]

-> un tableau ou une collection sont des objets sans interface et sans évènement, donc rien à "caller"

si tu parles d'une listbox par exemple, le click sur l'item 1 ou l'item 3 te renvoient déjà un seul et même évènement

si tu parles d'autre chose.... à préciser ;)

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Bonjour Pcpt,

Tu as commencé par effacer mes motivations du projet cagouille que je trouvais passionnant. J'imagine que des milliers de projets comme celui-ci ont du apparaitre et disparaitre ces quinze dernières années. Ne sachant plus ce qui m'avait amené sur le site (Je pouvais plus consulter mes motivations), je suis allé faire un Blog chez Martin. (L'auteur de vb2005 chez Campus et vb2008 chez Pearson). J'ai à peine commencé qu'on me demande 4 dollards pour la mémoire que j'ai besoin de quelques kilos et qu'on veut me faire payer tellement que j'arrive pas à compter les zéros derrière les octets. (J'aurais vite fait d'amortir ma clé Usb. Pensez donc si je faisais des pics).
Je t'ai donc suggéré d'effacer tout afin de ne pas être tenté de revenir polluer. De mon coté, j'avais effacé tous les liens qui pouvaient me ramener à Codes-Sources.


MAIS tu n'a pas effacé tous mes messages, et J'AI été pollué par les questions paresseuses de tas de gens qui veulent qu"on fasse le programme à leur place et qui répondent presque jamais quand on esssaie de s'interesser à eux. Il y en a même un que pendant que j'analysais le source du serveur en litige, qui m'a reproché de lui demander des précisions sur l'utilisation qu'il en avait.(jeudi 19 mars 2009 à 23:29:05 | Importer donnée Web )

Le programme de billard: EMERAUDE utilise depuis trente ans une bibliothèque semi-graphique structurée comme le .Net (à l'exeption des threads) et vous vous enfoncez dans le retard avec vos applications de tableur que les calculettes Texas Instruments et hewlet résolvaient déjà en 1974 !

Prenez garde de ne plus m'amuser! je pourrais aller voir ailleurs.
 
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

ok , merci, j'ai compris , j'ai utiliser une autre solution , vraiment pas utile et très peu professionnel , et cette solution est de renommer tout les controls manuellement . Je crois que finialement c'est la meilleur solution ,car c'est un gros projet et j'ai pas le temps de refondre le programme. Merci a tout ceux qui mon répondu et intéresser a mon problème
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Non ! Il faut pas renommer les contrôles manuellement: Il faut s'accrocher à la poignée. Les contrôles ont une adresse (Handle) qui porte une étiquette, généralement "name", je connais pas "caption" mais c'est peut-être pareil, et c'est surement si simple d'attribuer des poignées qu'on y pense pas. Le principe doit être le même que pour l'objet "Tag" du treeNode que je soupçonne d'être n'importe quelle structure de donnée de longueur inférieure au plus grand integer donné certainement au début de la structure pour rester compatible avec le String. Je vérifie même pas ma théorie tellement c'est évident les avantages de commencer une structure d'objet avec une telle fiche d'enregistrement à accés direct direct
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

J'ai l'impression qu'i y a aussi des bibliothèques construites autour de l'utilisation de "AdresseOf" . Autrefois, quand on commençait pas la construction d'un objet par une poignée, le compilateur faisait peek et poke sans qu'on le sache. Maintenant on a plus besoin de passer l'adresse de la fonction ou du sub parce qu'on utilise son "Handle". En anglais c'est neutre. Le compilateur gère des tableaux de Handles spécialisés pour les circonstances (évênements Britaniques), mais c'est kif du controle ou de n'importe quel objet pas forcément visuel, surtout s'il est bien construit. Avec l'héritage on peut pas se gourrer: le fond de sauce est fatalement bien lié.
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Il faudrait surveiller que Microsoft fasse pas la même cagade avec thread qu'avec adresseOf.
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

ok je vais essaie de tenter une solution , thank
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Les tableaux et les listes semblent réserver la mémoire au moment de leur déclaration. Si le composant qui gère leur index est public, c'est facile de gérer les news. Si tu as beaucoup d'instances à déclarer, ça vaut même le coup d'écrire un index parce qu'on va retrouver le problème ailleurs: j'ai essayé de faire une liste dynamique (de forms) et j'ai eu le même pb avec un tableau: Réserver la mémoire avec New. Doit y avoir un autre moyen de réserver la mémoire pour les index. J'ai vu passer "Using" , et ça a sûrement un rapport. On utiliserait un tableau normal comme index si on savait comment réserver la mémoire pour nos objets. Doit y avoir plusieurs méthodes suivant le domaine de visibilité. Il y a peut-être une bibliothèque pour gérer ça, tellement simple qu'on sait plus qu'elle existe. (Pas oublier de libérer la mémoire si on fait nous-même parce que c'est possible que c'est sous-traité par windows tellement c'est fondamental)
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

dans ma version de visual basic j'ai pas de init et ca fait une boucle infinit , masi a part cela c'est parfait , ca répond a ma question. thank
Messages postés
298
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
26 septembre 2009

Le init est un sub de l'instance déclaré dans l'exemple qui est assez long mais qu'on peut copier/coller dans la rubrique "CODES" de l'onglet VB du site qu'on est dans son forum. Il faut regarder samedi dernier: Scroll user control. Le bout de programme ci-dessus ouvre 4 instances de webbBrowser plus faciles à paramètrer que l'originale. Le code sert aussi à scroller des imageBox, et tout ce qui peut aller sur un panel. L'exemple ci-dessus fonctionne avec.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
je me permets d'intervenir pour le même motif
"
Je vérifie même pas ma théorie tellement c'est évident
" : bien dommage de ne pas vérifier!! => le handle est en LECTURE SEULE

bonne soirée à tous