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 :
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 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
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.
Partager