Bonjour,

Je me forme gentiment au .net en convertissant une application faite en VBA mais j'essaie de tirer profit de la programmation orientée objet.

J'ai créé un formulaire de base nommé frm_base duquel héritent tous les formulaires de mon application.
J'ai créé un formulaire de base de listing d'entités nommé frm_baseList qui hérite donc du formulaire de base mais qui dont hérite un autre formulaire.
De même pour le formulaire de base détail frm_baseDetail d'une entité.
La liste des entités de type d'opération se présente avec le formulaire frm_operationTypeList et le détail se présente avec le formulaire frm_operationTypeDetail
Au niveau des relations d'héritage, on a donc :
frm_base > frm_baseList > frm_operationTypeList
et
frm_base > frm_baseDetail > frm_operationTypeDetail

Cependant j'ai ajouté à frm_baseDetail une propriété _formParent de type frm_baseList qui est le formulaire liste parent pour pouvoir updater la liste lors d'une modification au sein du détail.

Mon problème est le suivant :
J'affecte bien cette propriété au niveau du constructeur de la classe frm_operationTypeDetail avec le formulaire liste appelant mais je n'arrive pas à accéder à la valeur au moment de l'update des données du déatil, autrement dit, j'ai perdu l'objet qui avait été assigné à la propriété.
Le type de la propriété est-il pour quelque chose?

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

Public Class frm_BaseDetail
    Inherits frm_Base

    Private _formParent As frm_BaseList
    Public Property FormParent() As frm_BaseList
        Get
            Return _formParent
        End Get
        Set(ByVal value As frm_BaseList)
            _formParent = value
        End Set
    End Property
...
    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub
...
End Class

Public Class frm_OpeTypeDetail
    Inherits frm_BaseDetail
...
    Public Sub New(ByVal vpFormParent As frm_BaseList)
        MyBase.New()
        InitializeComponent()
        Me.FormParent = vpFormParent
        ...
    End Sub
...
    Private Sub btn_save_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_save.Click
        ...
        'On ne peut pas accéder à l'objet sur la ligne suivante
        CType(Me.ParentForm, frm_OpeTypeList).RefreshList()
    End Sub
End Class