begin process at 2012 02 16 08:50:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Aide & Documentation

 > 

CallByName en VB.NET ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CallByName en VB.NET ?

vendredi 12 septembre 2008 à 00:02:23 | CallByName en VB.NET ?

us_30

Membre Club
Bonsoir,

Dans un projet sous VB6/VBA, j'utilisais l'instruction "CallByName"... Je tente de transporter cette instruction sous VB2008, mais je ne connais pas son équivalent... Avez-vous une idée ?

Merci, pour toute l'aide que vous pourriez m'apporter...

Amicalement,
Us.
vendredi 12 septembre 2008 à 10:46:59 | Re : CallByName en VB.NET ?

gillardg

Réponse acceptée !

Public Function CallByName( _    ByVal ObjectRef As System.Object, _    ByVal ProcName As String, _    ByVal UseCallType As CallType, _    ByVal Args() As Object _ ) As Object

Requirements

Namespace: Microsoft.VisualBasic

Module: Interaction

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)


vendredi 12 septembre 2008 à 12:32:21 | Re : CallByName en VB.NET ?

us_30

Membre Club
Bonjour,

Merci de nouveau.

J'ai trouvé 2 façons de faire :

Microsoft.VisualBasic.CallByName()
Microsoft.VisualBasic.Interaction.CallByName()

qui fonctionne donc, même sans la référence Microsoft.visualBasic cochée.
Bien sur, le fait d'écrire : "Microsoft.VisualBasic." fait, en réalité une référence implicite à VB6... (en qlq sorte)

Par conséquent, ce n'est pas du VB.NET natif !
Hors, c'est ce que je recherche... Ici, c'est plus une astuce, qu'autre chose...

Je me sert de CallByName, car visiblement VB2008 ne possède pas de collection d'objet pour les Label, TextBox, etc... Comme sous VB6, où cela est très simple d'utilisation... avec : Label(0), Label(1), etc...

IL y a-t-il une solution pour indexer les Label, ou autres cntrôles ?
(Cette question pourrait faire l'objet d'un nouveau post, j'en suis conscient...)

Amicalement,
US.

vendredi 12 septembre 2008 à 13:06:47 | Re : CallByName en VB.NET ?
vendredi 12 septembre 2008 à 16:46:21 | Re : CallByName en VB.NET ?

us_30

Membre Club
Salut,

OKay, vu l'astuce que tu utilises :

Dim tb() As TextBox = {TextBox0, TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12}

For x = 0 To 12
tb(x).text = String.Empty
Next

=

JE viens de me pencher dessus, et comme c'est déjà un problème que j'avais rencontré dans VBA (il n'y a pas de collection, non plus) j'avais fait une petite propriété bien pratique, d'ailleurs en Snippets : http://www.codyx.org/snippet_donner-valeur-dans-ensemble-meme-type-controle_528.aspx
que j'ai adapté pour VB2008... Voici ce que cela donne :

Dans un module :

=

Public Property TypeControl(ByVal oObjet As Object, ByVal NameControl As String, ByVal NamePropriete As String)
' DONNE UNE VALEUR A UNE PROPRIETE A L'ENSEMBLE D'UN TYPE DE CONTROLE

Set(ByVal value)
Dim cTypeControl As Control
For Each cTypeControl In oObjet.Controls
If cTypeControl.GetType.Name = NameControl Then
Microsoft.VisualBasic.CallByName(cTypeControl, NamePropriete, Microsoft.VisualBasic.CallType.Let, value)
End If
Next
End Set
Get
Return Nothing
End Get
End Property

=

Puis, on appelle ainsi : (exemple)

TypeControl(GroupBox1, "Textbox", "text") = "dede"

=> ainsi tous les Textbox se trouvant dans Groupbox1 auront le texte "dede".

C'est toute même lourd, que de citer tous les noms des contrôles...

(J'y metterai peut-être une petite source exemple, le temps d'avoir des critiques, puis en snippets... Enfin, si tu vois mieux ? n'hésite pas...)

Amicalement,
Us.
vendredi 12 septembre 2008 à 16:48:07 | Re : CallByName en VB.NET ?

us_30

Membre Club
Oupsss... Lire : "... C'est toute même moins lourd..."

Amicalement,
Us.
vendredi 12 septembre 2008 à 16:50:25 | Re : CallByName en VB.NET ?

us_30

Membre Club
Pour continuer, la fonction CTYPE est presque un équivalent à CALLBYNAME... mais en moins pratique... CallByName reste vraiment plus puissante... Il me semble, que rien remplace vraiment CallByName en VB.NET...

Amicalement,
Us.
vendredi 12 septembre 2008 à 17:26:49 | Re : CallByName en VB.NET ?

gillardg

ben attends vb10 ils ne pouvaient pas tout changer d'un coup sinon c'était impossible de faire un convertisseur vb6=>vb.net

vendredi 12 septembre 2008 à 17:31:54 | Re : CallByName en VB.NET ?

us_30

Membre Club
lol...

Amicalement,
Us.
samedi 13 septembre 2008 à 07:54:03 | Re : CallByName en VB.NET ?

Kristof_Koder

Quitte à faire du .NET, faisons-en jusqu'au bout !
Il existe l'espace de nom  System.Reflection dans le framework .NET
Avec les clases qu'il contient, il remplace plus qu'avantageusement ce bon vieux CallByName()

1 2

Cette discussion est classée dans : net, vb, instruction, callbyname


Répondre à ce message

Sujets en rapport avec ce message

VB.net sql server [ par taikibaybay ] j ai créé une procedure stocker avec parameter  sur sql server; et le dataset pour cette procedure mais je ne sais pas comment lier le formulaire a ce [Microsoft VB.NET] Utilisation port série [ par darkj57 ] Voila mon problème est tel que j'ai créé un petit programme ( chronomètre) ainsi qu'un boîtier de commande connecté à mon ordinateur par le port de sé Tester le type d'une objet [ par adrienbayer ] Bonjour,Je réalise une application sur la base de la programmation orientée objet en vb.net.Etant plus spécialisé dans le Delphi mais ayant la contrai vb.net filtre sur dataset [ par taikibaybay ] bonsoir,je charge un dataset avec une table sqlserver, je veux filtrer les informations afficher dans mon datagridview, sur un champ ex: idclient,n af vb.net [ par GADSN ] slt voila je travaille avec vb 2005 expresse (debutant :) )je travaille sur  un programme qui tente faire une communication avec une pointeuse : tous window form vb.net [ par nouriiset ] dans une window form, avec vb.net les icones des boutons ne s'afficheront pas a la compilation vb.net Dépassement de capacité [ par jmtoulon ] Bonjour, alors j'ai un probleme de dépassement de capacité quand j'initialise la variable :Dim c As<font color="#000 Création de chat en VB .NET Compact Framework [ par bny ] Le titre le dit....y-a-t'il quelqu'un qui pourrait me donner une direction (lien ou code écrit) pour m'aider à faire un chat client/serveur entre Pock Problèmes Appel de formulaire entre vb6 et vb.net [ par billy21121 ] Bonjour a tous,voila je suis entrain de migrer une application de vb6 vers vb.net 2005. j'ai travaillé ce dernier mois sur un formulaire qui contient VB.Net NewFolderButton [ par pseudoOM ] Bonjour à tous.Dans une "Folder Browser Dialog", comment faire pour que le bouton "Nouveau dossier" disparaisse ?J'ai déjà coché false dans la proprié


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,992 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales