Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : CallByName en VB.NET ? [ Divers / Aide & Documentation ] (us_30)

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é dans : net, vb, instruction, callbyname


Répondre à ce message

Sujets en rapport avec ce message

Pour telecharger VB.NET c'est par ici... [ par Visual Basic.Net ] http://msvaus.www.conxion.com/download/visualstudionet/trial/2.0/w982kmexp/en-us/setup.exec la beta 2 en us version evaluation ): Rafraichir le webbrowser avec VB [ par Cecile ] bonjour, je suis en train de creer une appli sous VB.net mais comme pas bp de monde programme sur VB.net j'aimerai au moins savoir comment on peut raf VB.net gratuitement! (C pas une question, C une annonce!) [ par blackwizzard ] comme je sais que ma news ne passera pas, la voila...Votre News a bien été ajoutée et apparaîtra après validation (on essaye de faire au plus vite :) Compilation - VB.NET [ par Shadow ] salut, comment faut compiler avec vb.net ??????? creer un datagrid avec VB.NET [ par Cecile ] voila, j'y arrive sur VB6 mais impossible sur .net!!!j'essai de mettre toutes mes donnees d'une table ACCESS sur un datagrid VB.netj'ai cree une conne ACCESS et DATAGRID sur VB.NET [ par Cecile ] voila, j'y arrive sur VB6 mais impossible sur .net!!!j'essai de mettre toutes mes donnees d'une table ACCESS sur un datagrid VB.netj'ai cree une conne VB sur le NET [ par nono78 ] Comment faire pour mettre un programme VB sur internet ? NOUVEAU SITE VB, .NET, Etc ... [ par hervé ] Forum, codes sources, tutorial, etc ...www.he-product.fr.st nouvelle plateforme .net [ par jfd ] bonsoirvous êtes tous certainement au courant du virage que va prendre microsoft et donc vb ...j'aimerai donc savoir ce que pense les développeurs VBd Kestion sur VB .net [ par Raptor ] J'ai cru comprendre que les variables de type String dans VB .net ne pourraient pas être modifiés apres l'initialisation. Ca me parait louche. Est-ce


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.