Bonsoir, Désolé si ma question peux paraître basique mais les questions de base peuvent aussi être les plus importantes pour produire un bon code et je pense aussi que ça va intéresser beaucoup de monde. J'ai fait un exemple simple avec un code minimaliste pour bien comprendre qu'elle est le meilleur moyen pour passer 1 paramètre (que j'ai nommé Param) d'une Form1 vers une Form2.

J'ai aussi d'autres impératifs qu'il serait trop long à expliquer mais que j’évoquerais peut-être en fonction de vos suggestions.
Pour l'instant il s'agit de faire simple sachant que dans mon programme mon Paramètre ne sera pas une simple String mais des objets ou des variables que je n'ai pas encore définis précisément. Dans l'idée il faut pouvoir modifier le paramètre depuis Form1 et que l'on puisse relire celui-ci dans Form2. Bien sûre on pourrait utiliser la variable public Param dans les 2 Form mais est-ce la bonne façon de faire ?.

J'ai fait un code simple en utilisant Byref pour passer le paramètre mais apparemment ça ne suffit pas. Pourtant il me semblait que en utilisant byref on pouvait déclarer plusieurs variables pointant vers la même donnée en mémoire.

Le code de Form1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Class Form1
    Public Parametre As String
    Public MaForm2 As Form2
    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Parametre = TextBoxParamètre.Text
        MaForm2 = New Form2(Parametre)
    End Sub
    Private Sub TextBoxParamétre_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBoxParamètre.TextChanged
        Parametre = TextBoxParamètre.Text
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles ButtonShoxForm2.Click
        MaForm2.Show()
    End Sub
End Class
Le code de Form2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Class Form2
    Private _Paramètre As String
    Public Sub New()
 
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
 
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
    End Sub
    Public Sub New(ByRef Param As String)
        Call Me.New()
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        _Paramètre = Param
    End Sub
 
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Call Refresh()
    End Sub
 
    Private Sub ButtonRefresh_Click(sender As System.Object, e As System.EventArgs) Handles ButtonRefresh.Click
        TextBoxParamètre.Text = _Paramètre
    End Sub
End Class

Merci beaucoup pour vos conseils et suggestions.