none
Projet Multi-documents(Mdi) problème d'accès a un formulaire child a partir d'un autre formulaire child RRS feed

  • Question

  • jour 

    J'ai un projet multi-documents qui se lance a partir 

    Le programme commence par un splashscreen qui se lance a partir de la MainForm(MdiParent). 

    Classe program 

    Imports System.Threading
    
    Namespace SplashScreenThreaded
    	Friend NotInheritable Class Program
    
    		Private Sub New()
    		End Sub
    
    		''' <summary>
            ''' Le point d'entrée principal de l'application.
    		''' </summary>
    		<STAThread> _
    		Shared Sub Main()
    			Application.EnableVisualStyles()
    			Application.SetCompatibleTextRenderingDefault(False)
    			Application.Run(New MainForm())
    		End Sub
    	End Class
    End Namespace

    Ensuite j'ai mon formulaire Parent avec lequel je lance les formulaires child tout se passe bien : 

    Public Sub NouveauCandidatToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NouveauCandidatToolStripMenuItem.Click
    
                '//test si la mdi est déjà affichée
                If mdiChildAjout.Text = "Ajout d'un nouveau candidat." Or Mid(mdiChildAjout.Text, 1, 22) = "Modification candidat:" Then
                    MsgBox("Une fenêtre pour cette fonction du programme existe déjà " & Chr(13) _
                      & "Veuillez fermer la fenêtre déjà active pour pouvoir en ouvrir un nouvelle .", vbExclamation, "Attention !")
                    Exit Sub
                End If
    
                mdiChildAjout = New FrmNouvCandidat
                mdiChildAjout.Text = "Ajout d'un nouveau candidat."
                mdiChildAjout.MdiParent = Me
                MsgBox(mdiChildAjout.MdiParent)
                mdiChildAjout.Show()
                mdiChildAjout.TXT_NOM.Focus()
                OptionToolStripMenuItem.Enabled = False
    
    
            End Sub
    
            Private Sub MaximiserLaFenêtreToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MaximiserLaFenêtreToolStripMenuItem.Click
                Me.WindowState = FormWindowState.Maximized
            End Sub
            Private Sub MinimiserLaFenêtreToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MinimiserLaFenêtreToolStripMenuItem.Click
                Me.WindowState = FormWindowState.Minimized
            End Sub
            ''' <summary>
            ''' GRISER LES MENUS CONTEXTUELS QUI SONT INUTILES EN FONCTION DU CONTEXTE DE LA FENËTRE
            ''' </summary>
            ''' <param name="sender"></param>
            ''' <param name="e"></param>
            ''' <remarks></remarks>
            Private Sub main_form_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
                Me.MaximiserLaFenêtreToolStripMenuItem.Enabled = Not (Me.WindowState = FormWindowState.Maximized)
                Me.MinimiserLaFenêtreToolStripMenuItem.Enabled = Not (Me.WindowState = FormWindowState.Minimized)
            End Sub
    
            Public Sub RechercherToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RechercherToolStripMenuItem.Click
                Try
                    '//test si la mdi est déjà affichée
                    If mdiChildRech.Text = "Recherche de candidatures" Then
                        MsgBox("Une fenêtre pour cette fonction du programme existe déjà " & Chr(13) _
                          & "Veuillez fermer la fenêtre déjà active pour pouvoir en ouvrir un nouvelle .", vbExclamation, "Attention !")
                        Exit Sub
                    End If
    
                    mdiChildRech = New FrmRecherche
                    mdiChildRech.Text = "Recherche de candidatures"
                    mdiChildRech.MdiParent = Me
                    mdiChildRech.Show()
                    mdiChildRech.TXT_NOM.Focus()
                Catch obj_erreur As Exception
                    MsgBox("Erreur dans RechercherToolStripMenuItem_Click de la FrmMain: " & obj_erreur.Message)
    
                End Try
    
    
            End Sub

    Quand je suis dans le formulaire child mdiChildRech je voudrais lancer le formulaire mdiChildAjout mais sans succès: 

    mdiChildAjout = New FrmNouvCandidat
    mdiChildAjout.MdiParent = MainFrom
    mdiChildAjout.Show()

    J'ai une erreur sur la ligne mdiChildAjout.MdiParent = MainFrom 

    Erreur: inaccessible en raison de son niveau de protection. 
    J'ai regardé au niveau des protections (public) mais je ne vois rien . 

    Auriez vous une idée car la je ne vois pas. 

    D'avance merci


    samedi 1 décembre 2012 16:40

Réponses

Toutes les réponses