OVH Cloud OVH Cloud

Modifier un controle du MainForm depuis un module

12 réponses
Avatar
ArnaudG
Bonjour,

Mon problème paraît simple, mais je ne m'en sors pas.
J'ai une petite application en VB .net composée de :

- 1 form principale (MainForm)
- 1 module où j'ai mis mes fonctions (déclenchées par des boutons de MainForm)

Dans MainForm, j'ai un label "labelDebug" dans lequel je voudrais écrire des
infos depuis les fonctions de mon module.

Voici le code de déclaration de mon Mainform (généré par VB) :

Public Class MainForm
Inherits System.Windows.Forms.Form
(...)
Public labelDebug As System.Windows.Forms.Label

- Dans mon module, j'ai essayé :

MainForm.labelDebug.text="mon texte"

Mais le compilateur ne connaît pas "MainForm".

- J'ai essayé de créer une Sub dans MainForm :

Public Sub ChangeTexte (ByVal texte As String)
Me.labelDebug.Text=texte
End Sub

Mais dans le module, la fonction est inaccessible.


Je ne sais plus trop comment faire, pourtant ça paraît simple !
Merci pour votre aide !

2 réponses

1 2
Avatar
ArnaudG
J'ai déjà essayé ce genre de truc, mais quand je veux lancer un :

public form1 as MainForm

il me dit qu'il ne connait pas MainForm...

c'est là que ça bloque !

"ArlodVig" wrote:

Arnaud,


J'ai trouvé une solution qui peux peut être t'aider

j'ai form1 : form principale

form2 fenetre secondaire

module1 un module vb


dans module 1 je déclare :
Public main1 As form1

Dans sub form1_load

je mets

main1 = Me


et après dans les module ou dans les autres form j'ai accès à tout les
contrôles et objet public de la forme principale par exemple

Main1.label1.text="toto"

et ça marche !!!


J'espère que cela peut t'aider


Maurice










Avatar
ArlodVig
Chez moi cela ne bloque pas, e l'ai intégré à mon application et je peux tout
modifier dans la form 1 depuis n'importe quel point du programme


es tu sur que tu as bien donné le nom de MainForm à la fenêtre principale

Forcément si tu as donné le nom mainform il ne peut pas te dire qu'il ne
connait pas




"ArnaudG" a écrit :

J'ai déjà essayé ce genre de truc, mais quand je veux lancer un :

public form1 as MainForm

il me dit qu'il ne connait pas MainForm...

c'est là que ça bloque !

"ArlodVig" wrote:

> Arnaud,
>
>
> J'ai trouvé une solution qui peux peut être t'aider
>
> j'ai form1 : form principale
>
> form2 fenetre secondaire
>
> module1 un module vb
>
>
> dans module 1 je déclare :
> Public main1 As form1
>
> Dans sub form1_load
>
> je mets
>
> main1 = Me
>
>
> et après dans les module ou dans les autres form j'ai accès à tout les
> contrôles et objet public de la forme principale par exemple
>
> Main1.label1.text="toto"
>
> et ça marche !!!
>
>
> J'espère que cela peut t'aider
>
>
> Maurice
>
>
>
>
>
>
>
>


1 2